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="Models\OrderItem.cs" />
|
||||||
<Compile Include="Demo\Demo0_SqlSugarClient.cs" />
|
<Compile Include="Demo\Demo0_SqlSugarClient.cs" />
|
||||||
<Compile Include="Models\ViewOrder.cs" />
|
<Compile Include="Models\ViewOrder.cs" />
|
||||||
|
<Compile Include="UnitTest\UCustom019.cs" />
|
||||||
<Compile Include="UnitTest\UintDynamic.cs" />
|
<Compile Include="UnitTest\UintDynamic.cs" />
|
||||||
<Compile Include="UnitTest\UnitManyToMany.cs" />
|
<Compile Include="UnitTest\UnitManyToMany.cs" />
|
||||||
<Compile Include="UnitTest\UCustom018.cs" />
|
<Compile Include="UnitTest\UCustom018.cs" />
|
||||||
|
@ -31,6 +31,7 @@ namespace OrmTest
|
|||||||
}
|
}
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
|
UCustom019.Init();
|
||||||
UnitManyToMany.Init();
|
UnitManyToMany.Init();
|
||||||
UCustom018.Init();
|
UCustom018.Init();
|
||||||
UCustom017.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 result= this.Context.Queryable<T>(queryable);
|
||||||
var QueryBuilder = queryable.QueryBuilder;
|
var QueryBuilder = queryable.QueryBuilder;
|
||||||
result.QueryBuilder.IsQueryInQuery = true;
|
result.QueryBuilder.IsQueryInQuery = true;
|
||||||
result.QueryBuilder.WhereIndex = QueryBuilder.WhereIndex++;
|
var appendIndex = result.QueryBuilder.Parameters==null?1:result.QueryBuilder.Parameters.Count+1;
|
||||||
result.QueryBuilder.LambdaExpressions.ParameterIndex = QueryBuilder.LambdaExpressions.ParameterIndex++;
|
result.QueryBuilder.WhereIndex = (QueryBuilder.WhereIndex+1);
|
||||||
result.QueryBuilder.LambdaExpressions.Index = QueryBuilder.LambdaExpressions.Index++;
|
result.QueryBuilder.LambdaExpressions.ParameterIndex = (QueryBuilder.LambdaExpressions.ParameterIndex+ appendIndex);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user