From f1c3617a35a2b6e3884669e5a6985ae828d41a87 Mon Sep 17 00:00:00 2001 From: skx <610262374@qq.com> Date: Sat, 16 Jan 2021 21:09:17 +0800 Subject: [PATCH] Optimization Mergetable --- .../Abstract/QueryableProvider/QueryableProvider.cs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 124982702..365ad23f1 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -609,15 +609,8 @@ namespace SqlSugar Check.Exception(this.MapperAction != null || this.MapperActionWithCache != null, "'Mapper’ needs to be written after ‘MergeTable’ "); Check.Exception(this.QueryBuilder.SelectValue.IsNullOrEmpty(), "MergeTable need to use Queryable.Select Method ."); Check.Exception(this.QueryBuilder.Skip > 0 || this.QueryBuilder.Take > 0 || this.QueryBuilder.OrderByValue.HasValue(), "MergeTable Queryable cannot Take Skip OrderBy PageToList "); - ToSqlBefore(); - var sql = QueryBuilder.ToSqlString(); - var tableName = this.SqlBuilder.GetPackTable(sql, "MergeTable"); - var mergeQueryable = this.Context.Queryable(); - mergeQueryable.QueryBuilder.Parameters = QueryBuilder.Parameters; - mergeQueryable.QueryBuilder.WhereIndex = QueryBuilder.WhereIndex + 1; - mergeQueryable.QueryBuilder.JoinIndex = QueryBuilder.JoinIndex + 1; - mergeQueryable.QueryBuilder.LambdaExpressions.ParameterIndex = QueryBuilder.LambdaExpressions.ParameterIndex; - return mergeQueryable.AS(tableName).Select("*"); + var sqlobj = this.ToSql(); + return this.Context.Queryable().AS(SqlBuilder.GetPackTable(sqlobj.Key, "MergeTable")).AddParameters(sqlobj.Value).Select("*").With(SqlWith.Null); } public ISugarQueryable Distinct()