From a0fb511e95195b0eb685a2a3e76a1863bb563356 Mon Sep 17 00:00:00 2001 From: skx <610262374@qq.com> Date: Sun, 17 Jan 2021 23:56:54 +0800 Subject: [PATCH] Code optimization --- Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs | 10 +++++----- .../Abstract/QueryableProvider/QueryableProvider.cs | 10 +--------- .../Abstract/SqlBuilderProvider/QueryBuilder.cs | 8 +++++++- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs index c45380568..68af0eb2f 100644 --- a/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/MySqlTest/Demo/Demo1_Queryable.cs @@ -93,11 +93,11 @@ namespace OrmTest )) .Select((o, i, c) => new { o,i}).ToList(); - List> ListDic = db.Queryable((o, i, c) => new JoinQueryInfos( - JoinType.Left, o.Id == i.OrderId, - JoinType.Left, o.CustomId == c.Id - )) - .Select().ToList().Select(it => it.ToDictionary(x => x.Key, x => x.Value)).ToList(); + + var mergeList= db.Queryable() + .Select(it => new { id = it.Id }) + .MergeTable().Select().ToList(); + Console.WriteLine("#### ReturnType End ####"); } diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 61bf2d832..0a2955f93 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1373,15 +1373,7 @@ namespace SqlSugar } protected ISugarQueryable _As(string tableName, string entityName) { - IsAs = true; - OldMappingTableList = this.Context.MappingTables; - this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables); - if (this.Context.MappingTables.Any(it => it.EntityName == entityName)) - { - this.Context.MappingTables.Add(this.Context.MappingTables.First(it => it.EntityName == entityName).DbTableName, tableName); - } - this.Context.MappingTables.Add(entityName, tableName); - this.QueryableMappingTableList = this.Context.MappingTables; + this.QueryBuilder.AsTables.Add(entityName, tableName); return this; } protected void _Filter(string FilterName, bool isDisabledGobalFilter) diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index 7440185e4..064001c42 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -114,6 +114,7 @@ namespace SqlSugar #endregion #region Sql Template + public Dictionary AsTables=new Dictionary(); public virtual string SqlTemplate { get @@ -484,7 +485,12 @@ namespace SqlSugar { get { - var result = Builder.GetTranslationTableName(EntityName); + var name = EntityName; + if (this.AsTables.Any(it=>it.Key==EntityName)) + { + name = this.AsTables.FirstOrDefault(it => it.Key == EntityName).Value; + } + var result = Builder.GetTranslationTableName(name); result += UtilConstants.Space; if (result.Contains("MergeTable") && result.Trim().EndsWith(" MergeTable")) {