diff --git a/Src/Asp.Net/SqlServerTest/UnitTest/UCustom010.cs b/Src/Asp.Net/SqlServerTest/UnitTest/UCustom010.cs index 7c9096512..985dfd31e 100644 --- a/Src/Asp.Net/SqlServerTest/UnitTest/UCustom010.cs +++ b/Src/Asp.Net/SqlServerTest/UnitTest/UCustom010.cs @@ -19,6 +19,12 @@ namespace OrmTest x1 = SqlFunc.ToBool(x.ItemId) }) .ToList(); + db.CodeFirst.InitTables(); + var list2=db.Queryable().GroupBy(it => new + { + it.A, + x=it.A.ToString() + }).ToList(); } public class Unitasfa1sadfa { @@ -29,6 +35,9 @@ namespace OrmTest } - + public class UnitADSFA + { + public bool A { get; set; } + } } } diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 43d021d22..9d17fd3ea 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1873,18 +1873,21 @@ namespace SqlSugar var isSingle = QueryBuilder.IsSingle(); ExpressionResult lamResult = null; string result = null; - if (expression is NewExpression && !expression.ObjToString().Contains("=")) - { - lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.ArraySingle : ResolveExpressType.ArrayMultiple); - result = string.Join(",", lamResult.GetResultArray().Select(it => it)); - } - else if (expression is NewExpression) + if (expression is NewExpression) { var newExp=expression as NewExpression; foreach (var item in newExp.Arguments) { - result += - QueryBuilder.GetExpressionValue(item, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple).GetResultString()+","; + 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(','); }