From 2ad2f71f94b0a10e66657f7a7a91eb25d9236273 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 16 Aug 2022 12:54:41 +0800 Subject: [PATCH] Code optimization --- .../ResolveItems/BinaryExpressionResolve.cs | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs index 6037531cb..fb438672a 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/BinaryExpressionResolve.cs @@ -28,20 +28,19 @@ namespace SqlSugar { var expression = this.Expression as BinaryExpression; var operatorValue = parameter.OperatorValue = ExpressionTool.GetOperator(expression.NodeType); - - if (IsGroupSubquery(expression.Right, operatorValue)) + var isSubGroup = IsGroupSubquery(expression.Right, operatorValue); + if (isSubGroup) { - if (ExpressionTool.IsUnConvertExpress(expression.Right)) - { - InSubGroupByConvertExpress(expression); - } - else - { - InSubGroupBy(expression, operatorValue == "<>" ? "NOT" : ""); - } - return; + SubGroup(expression, operatorValue); } + else + { + DefaultBinary(parameter, expression, operatorValue); + } + } + private void DefaultBinary(ExpressionParameter parameter, BinaryExpression expression, string operatorValue) + { var isEqual = expression.NodeType == ExpressionType.Equal; var isComparisonOperator = ExpressionTool.IsComparisonOperator(expression); base.ExactExpression = expression; @@ -61,6 +60,18 @@ namespace SqlSugar Right(parameter, operatorValue, isEqual, rightExpression, lsbs); } + private void SubGroup(BinaryExpression expression, string operatorValue) + { + if (ExpressionTool.IsUnConvertExpress(expression.Right)) + { + InSubGroupByConvertExpress(expression); + } + else + { + InSubGroupBy(expression, operatorValue == "<>" ? "NOT" : ""); + } + } + private void ConvertExpression(ref Expression leftExpression, ref Expression rightExpression, bool isAppend) { if (isAppend)