mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +08:00
Update db.Queryable(queryable)
This commit is contained in:
parent
9534c8fae6
commit
a7433659cd
@ -95,6 +95,7 @@
|
||||
<Compile Include="Models\OrderItem.cs" />
|
||||
<Compile Include="Demo\Demo0_SqlSugarClient.cs" />
|
||||
<Compile Include="Models\ViewOrder.cs" />
|
||||
<Compile Include="UnitTest\UCustom019.cs" />
|
||||
<Compile Include="UnitTest\UintDynamic.cs" />
|
||||
<Compile Include="UnitTest\UnitManyToMany.cs" />
|
||||
<Compile Include="UnitTest\UCustom018.cs" />
|
||||
|
@ -31,6 +31,7 @@ namespace OrmTest
|
||||
}
|
||||
public static void Init()
|
||||
{
|
||||
UCustom019.Init();
|
||||
UnitManyToMany.Init();
|
||||
UCustom018.Init();
|
||||
UCustom017.Init();
|
||||
|
69
Src/Asp.Net/SqlServerTest/UnitTest/UCustom019.cs
Normal file
69
Src/Asp.Net/SqlServerTest/UnitTest/UCustom019.cs
Normal file
@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SqlSugar;
|
||||
namespace OrmTest
|
||||
{
|
||||
internal class UCustom019
|
||||
{
|
||||
public static void Init()
|
||||
{
|
||||
var db = NewUnitTest.Db;
|
||||
|
||||
//建表
|
||||
if (!db.DbMaintenance.IsAnyTable("Test001", false))
|
||||
{
|
||||
db.CodeFirst.InitTables<Test001>();
|
||||
//用例代码
|
||||
var dataList = new List<Test001>();
|
||||
dataList.Add(new Test001() { id = 1, group = 1, addTime = DateTime.Now });
|
||||
dataList.Add(new Test001() { id = 2, group = 1, addTime = DateTime.Now.AddDays(1) });
|
||||
dataList.Add(new Test001() { id = 3, group = 2, addTime = DateTime.Now.AddDays(1) });
|
||||
dataList.Add(new Test001() { id = 4, group = 2, addTime = DateTime.Now.AddDays(1) });
|
||||
dataList.Add(new Test001() { id = 5, group = 2, addTime = DateTime.Now.AddDays(1) });
|
||||
dataList.Add(new Test001() { id = 6, group = 3, addTime = DateTime.Now.AddDays(1) });
|
||||
var result = db.Insertable(dataList).ExecuteCommand();//用例代码
|
||||
}
|
||||
|
||||
var defaultTime = new DateTime(1900, 1, 1);
|
||||
var nowTime = DateTime.Now;
|
||||
|
||||
var iQueryAble = db.Queryable<Test001>()
|
||||
.GroupBy(it => it.group)
|
||||
.GroupBy(it => it.addTime)
|
||||
.Where(it=>it.id==1)
|
||||
.Select<Test001_Ext>(it => new Test001_Ext
|
||||
{
|
||||
group = it.group,
|
||||
addTime = it.addTime,
|
||||
lastTime = SqlFunc.AggregateMax(SqlFunc.IIF(it.group == 1, it.addTime, defaultTime)),
|
||||
lastTime2 = SqlFunc.AggregateMax(SqlFunc.IIF(it.group == 1, it.addTime, defaultTime))
|
||||
});
|
||||
var res = db.Queryable(iQueryAble)
|
||||
|
||||
.InnerJoin<Test001>((i, t) => i.group == t.group)
|
||||
.Where((i,t)=>t.addTime < nowTime.AddDays(1))
|
||||
.ToList();
|
||||
|
||||
Console.WriteLine("用例跑完");
|
||||
Console.ReadKey();
|
||||
}
|
||||
//建类
|
||||
public class Test001
|
||||
{
|
||||
public int id { get; set; }
|
||||
|
||||
public int group { get; set; }
|
||||
|
||||
public DateTime addTime { get; set; }
|
||||
}
|
||||
|
||||
public class Test001_Ext : Test001
|
||||
{
|
||||
public DateTime lastTime { get; set; }
|
||||
public DateTime lastTime2 { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@ -347,9 +347,9 @@ namespace SqlSugar
|
||||
var result= this.Context.Queryable<T>(queryable);
|
||||
var QueryBuilder = queryable.QueryBuilder;
|
||||
result.QueryBuilder.IsQueryInQuery = true;
|
||||
result.QueryBuilder.WhereIndex = QueryBuilder.WhereIndex++;
|
||||
result.QueryBuilder.LambdaExpressions.ParameterIndex = QueryBuilder.LambdaExpressions.ParameterIndex++;
|
||||
result.QueryBuilder.LambdaExpressions.Index = QueryBuilder.LambdaExpressions.Index++;
|
||||
var appendIndex = result.QueryBuilder.Parameters==null?1:result.QueryBuilder.Parameters.Count+1;
|
||||
result.QueryBuilder.WhereIndex = (QueryBuilder.WhereIndex+1);
|
||||
result.QueryBuilder.LambdaExpressions.ParameterIndex = (QueryBuilder.LambdaExpressions.ParameterIndex+ appendIndex);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user