Update GroupBy exp to sql

This commit is contained in:
sunkaixuan 2022-03-26 10:02:29 +08:00
parent 8fc13657d8
commit 50077cf924
4 changed files with 44 additions and 1 deletions

View File

@ -100,6 +100,7 @@
<Compile Include="UnitTest\Models\UserEntity.cs" />
<Compile Include="UnitTest\Models\UserRoleEntity.cs" />
<Compile Include="UnitTest\UCustom01.cs" />
<Compile Include="UnitTest\UCustom09.cs" />
<Compile Include="UnitTest\UCustom011.cs" />
<Compile Include="UnitTest\UCustom02.cs" />
<Compile Include="UnitTest\UCustom03.cs" />

View File

@ -31,6 +31,7 @@ namespace OrmTest
}
public static void Init()
{
UCustom09.Init();
UCustom011.Init();
UCustom010.Init();
UCustom08.Init();

View File

@ -0,0 +1,31 @@
using OrmTest.UnitTest.Models;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OrmTest
{
public class UCustom09
{
public static void Init()
{
var db = NewUnitTest.Db;
var list=db.Queryable<Order>()
.GroupBy(x => new { CreateTime = x.CreateTime.ToString("yyyy-MM"),x.Name })
.Select(x => new { CreateTime = x.CreateTime.ToString("yyyy-MM") }).ToList();
}
public class Unitasfa1sadfa
{
[SugarColumn(IsPrimaryKey = true)]
public Guid Id { get; set; }
[SugarColumn(IsNullable = true)]
public bool ItemId { get; set; }
}
}
}

View File

@ -1873,11 +1873,21 @@ namespace SqlSugar
var isSingle = QueryBuilder.IsSingle();
ExpressionResult lamResult = null;
string result = null;
if (expression is NewExpression)
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)
{
var newExp=expression as NewExpression;
foreach (var item in newExp.Arguments)
{
result +=
QueryBuilder.GetExpressionValue(item, isSingle ? ResolveExpressType.WhereSingle : ResolveExpressType.WhereMultiple).GetResultString()+",";
}
result = result.TrimEnd(',');
}
else
{
lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);