diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 8ae83bb29..0ccc7dac8 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -321,6 +321,7 @@ namespace OrmTest.Demo var dbTime = db.GetDate(); var getAll = db.Queryable().Select("*").ToList(); var getAll2 = db.Queryable().ToList(); + var getAll3 = db.Queryable().OrderBy(it => new { it.Id, it.Name }).GroupBy(it => new { it.Id, it.Name }).Select("id").ToList(); var getRandomList = db.Queryable().OrderBy(it => SqlFunc.GetRandom()).ToList(); var getAllOrder = db.Queryable().OrderBy(it => it.Id).OrderBy(it => it.Name, OrderByType.Desc).ToList(); var getId = db.Queryable().Select(it => it.Id).ToList(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 5b1c42f2c..f24a6c1f3 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1006,9 +1006,19 @@ namespace SqlSugar { QueryBuilder.CheckExpression(expression, "OrderBy"); var isSingle = QueryBuilder.IsSingle(); - var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple); - OrderBy(lamResult.GetResultString() + UtilConstants.Space + type.ToString().ToUpper()); - return this; + 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)); + return this; + } + else + { + var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple); + OrderBy(lamResult.GetResultString() + UtilConstants.Space + type.ToString().ToUpper()); + return this; + } } protected ISugarQueryable _GroupBy(Expression expression) {