diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs index ee15472c3..3775d2470 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -529,10 +529,13 @@ namespace SqlSugar { //var x=method.Arguments[1]; var conditionals = ExpressionTool.GetExpressionValue(method.Arguments[1]) as List; - var whereObj = queryable.QueryBuilder.Builder.ConditionalModelToSql(conditionals); - where.Add(whereObj.Key); - if(whereObj.Value!=null) - result.Parameters.AddRange(whereObj.Value); + if (conditionals.Count > 0) + { + var whereObj = queryable.QueryBuilder.Builder.ConditionalModelToSql(conditionals); + where.Add(whereObj.Key); + if(whereObj.Value!=null) + result.Parameters.AddRange(whereObj.Value); + } } else { diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index f59f734d1..feffd8cf7 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -2621,9 +2621,23 @@ namespace SqlSugar } else if ((expression as LambdaExpression).Body is NewExpression) { - var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.ArraySingle : ResolveExpressType.ArrayMultiple); - var items = lamResult.GetResultString().Split(',').Where(it => it.HasValue()).Select(it => it + UtilConstants.Space + type.ToString().ToUpper()).ToList(); - OrderBy(string.Join(",", items)); + var newExp = (expression as LambdaExpression).Body as NewExpression; + var result = ""; + foreach (var item in newExp.Arguments) + { + if (item is MemberExpression) + { + result += + QueryBuilder.GetExpressionValue(item, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple).GetResultString() + ","; + } + else + { + result += + QueryBuilder.GetExpressionValue(item, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple).GetResultString() + ","; + } + } + result = result.TrimEnd(','); + OrderBy(result); return this; } else