diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index 1e403309c..e107af193 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -376,7 +376,16 @@ namespace SqlSugar { foreach (var item in args) { - AppendItem(parameter, name, args, model, item); + if (name == "IIF" && item == args.First() && item is MemberExpression) + { + Expression trueValue = Expression.Constant(true); + var newItem = ExpressionBuilderHelper.CreateExpression(item, trueValue, ExpressionType.And); + AppendItem(parameter, name, new List() { newItem}, model, newItem); + } + else + { + AppendItem(parameter, name, args, model, item); + } } if (appendArgs != null) { @@ -392,6 +401,7 @@ namespace SqlSugar parameter.BaseParameter.CommonTempData = GetMethodValue(name, model); } } + protected void Where(ExpressionParameter parameter, bool? isLeft, string name, IEnumerable args, MethodCallExpressionModel model, List appendArgs = null) { foreach (var item in args)