@@ -68,10 +68,7 @@ protected SqlExpression(IOrmLiteDialectProvider dialectProvider)
6868 tableDefs . Add ( modelDef ) ;
6969
7070 var initFilter = OrmLiteConfig . SqlExpressionInitFilter ;
71- if ( initFilter != null )
72- {
73- initFilter ( this . GetUntyped ( ) ) ;
74- }
71+ initFilter ? . Invoke ( this . GetUntyped ( ) ) ;
7572 }
7673
7774 public SqlExpression < T > Clone ( )
@@ -1638,7 +1635,7 @@ public virtual object Visit(Expression exp)
16381635 }
16391636 }
16401637
1641- protected internal virtual object VisitJoin ( Expression exp )
1638+ protected virtual object VisitJoin ( Expression exp )
16421639 {
16431640 skipParameterizationForThisExpression = true ;
16441641 var visitedExpression = Visit ( exp ) ;
@@ -1670,10 +1667,10 @@ protected virtual object VisitLambda(LambdaExpression lambda)
16701667 }
16711668 else if ( lambda . Body . NodeType == ExpressionType . Conditional && sep == " " )
16721669 {
1673- ConditionalExpression c = lambda . Body as ConditionalExpression ;
1670+ var c = lambda . Body as ConditionalExpression ;
16741671
16751672 var r = VisitConditional ( c ) ;
1676- if ( ! ( r is PartialSqlString ) )
1673+ if ( r is not PartialSqlString )
16771674 return r ;
16781675
16791676 return $ "{ r } ={ GetQuotedTrueValue ( ) } ";
@@ -1695,17 +1692,17 @@ protected virtual object VisitBinary(BinaryExpression b)
16951692 {
16961693 object originalLeft = null , originalRight = null , left , right ;
16971694 var operand = BindOperant ( b . NodeType ) ; //sep= " " ??
1698- if ( operand == "AND" || operand == "OR" )
1695+ if ( operand is "AND" or "OR" )
16991696 {
17001697 if ( IsBooleanComparison ( b . Left ) )
17011698 {
17021699 left = VisitMemberAccess ( ( MemberExpression ) b . Left ) ;
17031700 if ( left is PartialSqlString )
17041701 left = new PartialSqlString ( $ "{ left } ={ GetQuotedTrueValue ( ) } ") ;
17051702 }
1706- else if ( b . Left is ConditionalExpression )
1703+ else if ( b . Left is ConditionalExpression expr )
17071704 {
1708- left = VisitConditional ( ( ConditionalExpression ) b . Left ) ;
1705+ left = VisitConditional ( expr ) ;
17091706 if ( left is PartialSqlString )
17101707 left = new PartialSqlString ( $ "{ left } ={ GetQuotedTrueValue ( ) } ") ;
17111708 }
@@ -1717,29 +1714,28 @@ protected virtual object VisitBinary(BinaryExpression b)
17171714 if ( right is PartialSqlString )
17181715 right = new PartialSqlString ( $ "{ right } ={ GetQuotedTrueValue ( ) } ") ;
17191716 }
1720- else if ( b . Right is ConditionalExpression )
1717+ else if ( b . Right is ConditionalExpression expr )
17211718 {
1722- right = VisitConditional ( ( ConditionalExpression ) b . Right ) ;
1719+ right = VisitConditional ( expr ) ;
17231720 if ( right is PartialSqlString )
17241721 right = new PartialSqlString ( $ "{ right } ={ GetQuotedTrueValue ( ) } ") ;
17251722 }
17261723 else right = Visit ( b . Right ) ;
17271724
1728- if ( ! ( left is PartialSqlString ) && ! ( right is PartialSqlString ) )
1725+ if ( left is not PartialSqlString && right is not PartialSqlString )
17291726 {
17301727 var result = CachedExpressionCompiler . Evaluate ( PreEvaluateBinary ( b , left , right ) ) ;
17311728 return result ;
17321729 }
17331730
1734- if ( ! ( left is PartialSqlString ) )
1731+ if ( left is not PartialSqlString )
17351732 left = ( ( bool ) left ) ? GetTrueExpression ( ) : GetFalseExpression ( ) ;
1736- if ( ! ( right is PartialSqlString ) )
1733+ if ( right is not PartialSqlString )
17371734 right = ( ( bool ) right ) ? GetTrueExpression ( ) : GetFalseExpression ( ) ;
17381735 }
1739- else if ( ( operand == "=" || operand == "<>" ) && b . Left is MethodCallExpression && ( ( MethodCallExpression ) b . Left ) . Method . Name == "CompareString" )
1736+ else if ( ( operand is "=" or "<>" ) && b . Left is MethodCallExpression methodExpr && methodExpr . Method . Name == "CompareString" )
17401737 {
17411738 //Handle VB.NET converting (x => x.Name == "Foo") into (x => CompareString(x.Name, "Foo", False)
1742- var methodExpr = ( MethodCallExpression ) b . Left ;
17431739 var args = this . VisitExpressionList ( methodExpr . Arguments ) ;
17441740 right = GetValue ( args [ 1 ] , typeof ( string ) ) ;
17451741 ConvertToPlaceholderAndParameter ( ref right ) ;
@@ -1751,8 +1747,7 @@ protected virtual object VisitBinary(BinaryExpression b)
17511747 originalRight = right = Visit ( b . Right ) ;
17521748
17531749 // Handle "expr = true/false", including with the constant on the left
1754-
1755- if ( operand == "=" || operand == "<>" )
1750+ if ( operand is "=" or "<>" )
17561751 {
17571752 if ( left is bool )
17581753 {
@@ -1768,12 +1763,13 @@ protected virtual object VisitBinary(BinaryExpression b)
17681763 return true ; // "null != true/false" becomes "true"
17691764 }
17701765
1771- if ( right is bool && ! IsFieldName ( left ) && ! ( b . Left is ConditionalExpression ) ) // Don't change anything when "expr" is a column name or ConditionalExpression - then we really want "ColName = 1" or (Case When 1=0 Then 1 Else 0 End = 1)
1766+ // Don't change anything when "expr" is a column name or ConditionalExpression - then we really want "ColName = 1" or (Case When 1=0 Then 1 Else 0 End = 1)
1767+ if ( right is bool rightBool && ! IsFieldName ( left ) && b . Left is not ConditionalExpression )
17721768 {
17731769 if ( operand == "=" )
1774- return ( bool ) right ? left : GetNotValue ( left ) ; // "expr == true" becomes "expr", "expr == false" becomes "not (expr)"
1770+ return rightBool ? left : GetNotValue ( left ) ; // "expr == true" becomes "expr", "expr == false" becomes "not (expr)"
17751771 if ( operand == "<>" )
1776- return ( bool ) right ? GetNotValue ( left ) : left ; // "expr != true" becomes "not (expr)", "expr != false" becomes "expr"
1772+ return rightBool ? GetNotValue ( left ) : left ; // "expr != true" becomes "not (expr)", "expr != false" becomes "expr"
17771773 }
17781774 }
17791775
@@ -1793,23 +1789,22 @@ protected virtual object VisitBinary(BinaryExpression b)
17931789 }
17941790 else if ( leftNeedsCoercing )
17951791 {
1796- var leftPartialSql = left as PartialSqlString ;
1797- if ( leftPartialSql == null )
1792+ if ( left is not PartialSqlString )
17981793 {
17991794 left = DialectProvider . GetQuotedValue ( left , rightEnum . EnumType ) ;
18001795 }
18011796 }
1802- else if ( ! ( left is PartialSqlString ) && ! ( right is PartialSqlString ) )
1797+ else if ( left is not PartialSqlString && right is not PartialSqlString )
18031798 {
18041799 var evaluatedValue = CachedExpressionCompiler . Evaluate ( PreEvaluateBinary ( b , left , right ) ) ;
18051800 var result = VisitConstant ( Expression . Constant ( evaluatedValue ) ) ;
18061801 return result ;
18071802 }
1808- else if ( ! ( left is PartialSqlString ) )
1803+ else if ( left is not PartialSqlString )
18091804 {
18101805 left = DialectProvider . GetQuotedValue ( left , left ? . GetType ( ) ) ;
18111806 }
1812- else if ( ! ( right is PartialSqlString ) )
1807+ else if ( right is not PartialSqlString )
18131808 {
18141809 right = GetValue ( right , right ? . GetType ( ) ) ;
18151810 }
@@ -1870,9 +1865,8 @@ private BinaryExpression PreEvaluateBinary(BinaryExpression b, object left, obje
18701865 /// otherwise, false.</returns>
18711866 protected virtual bool IsBooleanComparison ( Expression e )
18721867 {
1873- if ( ! ( e is MemberExpression ) ) return false ;
1874-
1875- var m = ( MemberExpression ) e ;
1868+ if ( e is not MemberExpression m )
1869+ return false ;
18761870
18771871 if ( m . Member . DeclaringType . IsNullableType ( ) &&
18781872 m . Member . Name == "HasValue" ) //nameof(Nullable<bool>.HasValue)
0 commit comments