diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs index f9a5f9346..5b81ee52e 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Common/ExpressionTool.cs @@ -384,6 +384,10 @@ namespace SqlSugar { return (expression as ConstantExpression).Value; } + else if (expression is MethodCallExpression) + { + return LambdaExpression.Lambda(expression).Compile().DynamicInvoke(); + } else { return GetMemberValue((expression as MemberExpression).Member, expression); diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs index 8a25bab93..d6a40cc02 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve_Helper.cs @@ -798,7 +798,9 @@ namespace SqlSugar this.Context.Parameters.RemoveAll(it => model.Args[1].MemberName.ObjToString().Contains(it.ParameterName)); List conditionalModels = (List)model.Args[1].MemberValue; var sqlObj = this.Context.SugarContext.Context.Queryable().SqlBuilder.ConditionalModelToSql(conditionalModels, 0); - model.Args[1].MemberName = sqlObj.Key; + var sql = sqlObj.Key; + UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value, 0, "_" + this.Context.ParameterIndex + "_B"); + model.Args[1].MemberName = sql; if (sqlObj.Value != null) { this.Context.Parameters.AddRange(sqlObj.Value);