From 3257316d1745548d26f2fd645c3f952ad4fd897a Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 17 Feb 2024 14:51:10 +0800 Subject: [PATCH] Synchronization code --- .../Abstract/QueryableProvider/QueryableHelper.cs | 9 +++++++++ .../SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs index ec4b5de5e..0b30de3ba 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableHelper.cs @@ -1519,6 +1519,15 @@ namespace SqlSugar { result.ShortName = this.SqlBuilder.GetTranslationColumnName(result.ShortName); } + if (this.EntityInfo.Type == result.EntityType&&this.QueryBuilder?.AsTables?.Count()==1) + { + var tableName = this.QueryBuilder.AsTables.First().Value; + if (tableName.EndsWith(" MergeTable ")&&tableName?.Trim()==this.QueryBuilder.GetTableNameString?.Trim()) + { + this.QueryBuilder.MasterDbTableName = " (SELECT * FROM " + tableName + ")"; + this.QueryBuilder.AsTables?.Clear(); + } + } if (result.JoinIndex == 0) { var firstPareamter = (express as LambdaExpression).Parameters.First(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index 0ce07fa60..f7a58a9a6 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -958,6 +958,7 @@ namespace SqlSugar } } } + public virtual string MasterDbTableName { get; set; } public virtual string GetTableNameString { get @@ -981,6 +982,10 @@ namespace SqlSugar } var result = Builder.GetTranslationTableName(name); result += UtilConstants.Space; + if (MasterDbTableName.HasValue()) + { + result = MasterDbTableName; + } if (IsSingle() && result.Contains("MergeTable") && result.Trim().EndsWith(" MergeTable") && TableShortName != null) { result = result.Replace(") MergeTable ", ") " + TableShortName+UtilConstants.Space);