Optimize split table

This commit is contained in:
sunkaixuna 2022-01-05 20:25:14 +08:00
parent 31b0a715b4
commit b8da23f9e7
4 changed files with 22 additions and 4 deletions

View File

@ -68,6 +68,9 @@ namespace OrmTest
Console.WriteLine();
////强制分表类型
var x4 = db.Insertable(new OrderSpliteTest() { Name = "A" ,Time=DateTime.Now.AddDays(-1) }).SplitTable().ExecuteCommand();
var tableName21 = db.SplitHelper<OrderSpliteTest>().GetTableName(DateTime.Now.AddDays(-111));
var listNull = db.Queryable<OrderSpliteTest>().SplitTable(ta => ta.InTableNames(tableName21)).ToList();
Console.WriteLine("#### CodeFirst end ####");
}

View File

@ -68,6 +68,10 @@ namespace OrmTest
Console.WriteLine();
////强制分表类型
var x4 = db.Insertable(new OrderSpliteTest() { Name = "A" ,Time=DateTime.Now.AddDays(-1) }).SplitTable().ExecuteCommand();
var tableName21 = db.SplitHelper<OrderSpliteTest>().GetTableName(DateTime.Now.AddDays(-111));
var listNull = db.Queryable<OrderSpliteTest>().SplitTable(ta => ta.InTableNames(tableName21)).ToList();
Console.WriteLine("#### CodeFirst end ####");
}

View File

@ -48,7 +48,10 @@ namespace OrmTest
Console.WriteLine();
var tableName = db.SplitHelper<OrderSpliteTest>().GetTableName(DateTime.Now.AddDays(-1));
var tableName = db.SplitHelper<OrderSpliteTest>().GetTableName(DateTime.Now.AddDays(-111));
var listNull= db.Queryable<OrderSpliteTest>().SplitTable(ta => ta.InTableNames(tableName)).ToList();
var tableName2 = db.SplitHelper(new OrderSpliteTest() { Time=DateTime.Now}).GetTableNames();
var tableName3 = db.SplitHelper(new List<OrderSpliteTest> {
new OrderSpliteTest() { Time = DateTime.Now },

View File

@ -931,11 +931,19 @@ namespace SqlSugar
{
tableQueryables.Add(this.Clone().AS(item.TableName));
}
Check.Exception(tableQueryables.Count == 0, ErrorMessage.GetThrowMessage("SplitTable error . There are no tables after filtering", "SplitTable没有筛选出分表请检查条件和数据库中的表"));
var unionall = this.Context._UnionAll(tableQueryables.ToArray());
if (tableQueryables.Count == 0)
{
var result= this.Context.SqlQueryable<object>("-- No table ").Select<T>();
result.QueryBuilder.SelectValue = null;
return result;
}
else
{
var unionall = this.Context._UnionAll(tableQueryables.ToArray());
return unionall;
}
//var values= unionall.QueryBuilder.GetSelectValue;
//unionall.QueryBuilder.SelectValue = values;
return unionall;
}
public ISugarQueryable<T> Distinct()
{