mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-19 18:22:23 +08:00
Optimization
This commit is contained in:
@@ -423,6 +423,12 @@ namespace OrmTest
|
|||||||
.Select((o, cus) => new ViewOrder { Id=o.Id, CustomName = cus.Name })
|
.Select((o, cus) => new ViewOrder { Id=o.Id, CustomName = cus.Name })
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
var query6 = db.Queryable(db.Queryable<Order>()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
|
||||||
|
var query7 = db.Queryable(db.Queryable<Order>().Select<Order>().MergeTable()).LeftJoin<OrderItem>((m, i) => m.Id == i.OrderId)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
Console.WriteLine("#### Join Table End ####");
|
Console.WriteLine("#### Join Table End ####");
|
||||||
}
|
}
|
||||||
|
@@ -819,9 +819,9 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> MergeTable()
|
public virtual ISugarQueryable<T> MergeTable()
|
||||||
{
|
{
|
||||||
Check.Exception(this.MapperAction != null || this.MapperActionWithCache != null, "'Mapper’ needs to be written after ‘MergeTable’ ");
|
Check.Exception(this.MapperAction != null || this.MapperActionWithCache != null,ErrorMessage.GetThrowMessage( "'Mapper’ needs to be written after ‘MergeTable’ ", "Mapper 只能在 MergeTable 之后使用"));
|
||||||
Check.Exception(this.QueryBuilder.SelectValue.IsNullOrEmpty(), "MergeTable need to use Queryable.Select Method .");
|
Check.Exception(this.QueryBuilder.SelectValue.IsNullOrEmpty(),ErrorMessage.GetThrowMessage( "MergeTable need to use Queryable.Select Method .", "使用MergeTable之前必须要有Queryable.Select方法"));
|
||||||
Check.Exception(this.QueryBuilder.Skip > 0 || this.QueryBuilder.Take > 0 || this.QueryBuilder.OrderByValue.HasValue(), "MergeTable Queryable cannot Take Skip OrderBy PageToList ");
|
Check.Exception(this.QueryBuilder.Skip > 0 || this.QueryBuilder.Take > 0 || this.QueryBuilder.OrderByValue.HasValue(),ErrorMessage.GetThrowMessage( "MergeTable Queryable cannot Take Skip OrderBy PageToList ", "使用 MergeTable不能有 Take Skip OrderBy PageToList 等操作,你可以在Mergetable之后操作"));
|
||||||
var sqlobj = this._ToSql();
|
var sqlobj = this._ToSql();
|
||||||
var index = QueryBuilder.WhereIndex + 1;
|
var index = QueryBuilder.WhereIndex + 1;
|
||||||
var result = this.Context.Queryable<T>().AS(SqlBuilder.GetPackTable(sqlobj.Key, "MergeTable")).AddParameters(sqlobj.Value).Select("*").With(SqlWith.Null);
|
var result = this.Context.Queryable<T>().AS(SqlBuilder.GetPackTable(sqlobj.Key, "MergeTable")).AddParameters(sqlobj.Value).Select("*").With(SqlWith.Null);
|
||||||
@@ -1642,6 +1642,12 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
var firstPareamter = (express as LambdaExpression).Parameters.First();
|
var firstPareamter = (express as LambdaExpression).Parameters.First();
|
||||||
this.QueryBuilder.TableShortName = firstPareamter.Name;
|
this.QueryBuilder.TableShortName = firstPareamter.Name;
|
||||||
|
if (this.QueryBuilder.AsTables != null && this.QueryBuilder.AsTables.Count==1)
|
||||||
|
{
|
||||||
|
var tableinfo = this.QueryBuilder.AsTables.First();
|
||||||
|
this.QueryBuilder.AsTables[tableinfo.Key] =" (SELECT * FROM " +this.QueryBuilder.AsTables.First().Value+")";
|
||||||
|
this.QueryBuilder.SelectValue = this.QueryBuilder.TableShortName +".*";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Check.Exception(result.JoinIndex > 10, ErrorMessage.GetThrowMessage("只支持12个表", "Only 12 tables are supported"));
|
Check.Exception(result.JoinIndex > 10, ErrorMessage.GetThrowMessage("只支持12个表", "Only 12 tables are supported"));
|
||||||
return result;
|
return result;
|
||||||
|
Reference in New Issue
Block a user