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")) {