From 2dfa5ba6b9f94b9ea2bc0c5c25fd8dce60c6b29d Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 16 Aug 2022 13:48:35 +0800 Subject: [PATCH] Update exp to sql --- .../ResolveItems/BinaryExpressionResolve.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs index fb438672a..ef1e330b0 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs @@ -46,6 +46,11 @@ namespace SqlSugar base.ExactExpression = expression; var leftExpression = expression.Left; var rightExpression = expression.Right; + if (RightIsHasValue(leftExpression, rightExpression,ExpressionTool.IsLogicOperator(expression))) + { + Expression trueValue = Expression.Constant(true); + rightExpression = ExpressionBuilderHelper.CreateExpression(rightExpression, trueValue, ExpressionType.And); + } var leftIsBinary = leftExpression is BinaryExpression; var rightBinary = rightExpression is BinaryExpression; var lbrs = leftIsBinary && !rightBinary; @@ -213,5 +218,15 @@ namespace SqlSugar } return true; } + + private static bool RightIsHasValue(Expression leftExpression, Expression rightExpression,bool isLogic) + { + return isLogic&& + leftExpression.Type == UtilConstants.BoolType && + rightExpression.Type == UtilConstants.BoolType && + rightExpression is MethodCallExpression && + (rightExpression as MethodCallExpression).Method.Name == "HasValue"; + } + } }