From 2f3c868cba0d9a52b4b9b08f73878cbca4e51b2d Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 19 Sep 2017 17:04:39 +0800 Subject: [PATCH] Optimized code --- .../Abstract/SqlBuilderProvider/SqlBuilderProvider.cs | 11 ++++++++--- Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs | 1 + Src/Asp.Net/SqlSugar/SqlSugarClient.cs | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs index 590843d36..f49d031aa 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs @@ -73,14 +73,19 @@ namespace SqlSugar } public virtual string GetPackTable(string sql, string shortName) { - return UtilMethods.GetPackTable(sql,shortName); + return UtilMethods.GetPackTable(sql, shortName); } - public virtual string GetDefaultShortName() { + public virtual string GetDefaultShortName() + { return "t"; } + public virtual string GetUnionAllSql(List sqlList) + { + return string.Join("UNION ALL \r\n", sqlList); + } public virtual void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex) { - UtilMethods.RepairReplicationParameters(ref appendSql,parameters,addIndex); + UtilMethods.RepairReplicationParameters(ref appendSql, parameters, addIndex); } #endregion diff --git a/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs b/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs index 861b47861..08c987a08 100644 --- a/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs @@ -28,6 +28,7 @@ namespace SqlSugar string GetNoTranslationColumnName(string name); string GetPackTable(string sql,string shortName); string GetDefaultShortName(); + string GetUnionAllSql(List sqlList); void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex); } } diff --git a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs index b27a7ae84..150b3d51a 100644 --- a/Src/Asp.Net/SqlSugar/SqlSugarClient.cs +++ b/Src/Asp.Net/SqlSugar/SqlSugarClient.cs @@ -310,6 +310,7 @@ namespace SqlSugar public virtual ISugarQueryable UnionAll(params ISugarQueryable[] queryables) where T : class, new() { + var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig); Check.Exception(queryables.IsNullOrEmpty(), "UnionAll.queryables is null "); int i = 1; List>> allItems = new List>>(); @@ -324,7 +325,7 @@ namespace SqlSugar allItems.Add(new KeyValuePair>(sql, new List())); i++; } - var allSql = string.Join("UNION ALL \r\n", allItems.Select(it => it.Key)); + var allSql = sqlBuilder.GetUnionAllSql(allItems.Select(it => it.Key).ToList()); var allParameters = allItems.SelectMany(it => it.Value).ToArray(); var resulut = this.Queryable().AS(UtilMethods.GetPackTable(allSql, "unionTable")); resulut.AddParameters(allParameters);