diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs index 5d4998802..bef4ccdb3 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs @@ -182,6 +182,23 @@ namespace SqlSugar reval = objReference; return reval; } + + internal static Expression RemoveConvert(Expression item) + { + for (int i = 0; i < 10; i++) + { + if ((item is UnaryExpression) && (item as UnaryExpression).NodeType == ExpressionType.Convert) + { + 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 603562c81..535ca957f 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 = item; + base.Expression =ExpressionTool.RemoveConvert(item); base.Start(); string parameterName = this.Context.SqlParameterKeyWord + ExpressionConst.Const + this.Context.ParameterIndex; parameter.Context.Result.Append(base.Context.GetEqString(memberName, parameterName));