From e08444d161c9a80845c54b41b786e07d681f9ff5 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 30 Apr 2022 17:53:23 +0800 Subject: [PATCH] Update exp to sql --- .../ExpressionsToSql/Common/ExpressionTool.cs | 18 +++++++++++++++++- .../MemberInitExpressionResolve.cs | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs index bef4ccdb3..18100ccef 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs @@ -198,7 +198,23 @@ namespace SqlSugar } return item; } - + internal static Expression RemoveConvertThanOne(Expression item) + { + for (int i = 0; i < 10; i++) + { + if ((item is UnaryExpression) + && (item as UnaryExpression).NodeType == ExpressionType.Convert + && (item as UnaryExpression).Operand is UnaryExpression) + { + item = (item as UnaryExpression).Operand; + } + else + { + break; + } + } + return item; + } public static string GetMemberName(Expression expression) { if (expression is LambdaExpression) diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs index e21923d2a..6f52fdcdb 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MemberInitExpressionResolve.cs @@ -130,7 +130,7 @@ namespace SqlSugar } else if (IsConst(item)) { - base.Expression = ExpressionTool.RemoveConvert(item); + base.Expression =ExpressionTool.RemoveConvertThanOne(item); base.Start(); string parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.Const + this.Context.ParameterIndex; parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameterName));