diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhere.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhere.cs index 9cf40fe4b..9058cb595 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhere.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubWhere.cs @@ -57,7 +57,7 @@ namespace SqlSugar copyContext.IsSingle = false; } var result = "WHERE " + SubTools.GetMethodValue(copyContext, argExp, ResolveExpressType.WhereMultiple); - if (argExp.Type == typeof(List)) + if (argExp.Type == typeof(List)&& this.Context.Parameters.Any()) { var p= this.Context.Parameters.Last(); this.Context.Parameters.Remove(p); @@ -68,6 +68,15 @@ namespace SqlSugar this.Context.Parameters.AddRange(sqlObj.Value); return result; } + else if (argExp.Type == typeof(List) && !this.Context.Parameters.Any()) + { + var cols = ExpressionTool.DynamicInvoke(((expression as MethodCallExpression).Arguments[0])) as List; + var sqlObj = this.Context.SugarContext.QueryBuilder.Builder.ConditionalModelToSql(cols, this.Context.ParameterIndex * 100); + this.Context.ParameterIndex = this.Context.ParameterIndex + this.Context.ParameterIndex * 100; + result = "WHERE " + sqlObj.Key; + this.Context.Parameters.AddRange(sqlObj.Value); + return result; + } if (this.Context.JoinIndex > 0 ||pars.Count() > 1) { this.Context.Parameters.AddRange(copyContext.Parameters);