Optimized code

This commit is contained in:
sunkaixuan
2017-09-19 17:04:39 +08:00
parent 208e6932c9
commit 2f3c868cba
3 changed files with 11 additions and 4 deletions

View File

@@ -73,14 +73,19 @@ namespace SqlSugar
} }
public virtual string GetPackTable(string sql, string shortName) 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"; return "t";
} }
public virtual string GetUnionAllSql(List<string> sqlList)
{
return string.Join("UNION ALL \r\n", sqlList);
}
public virtual void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex) public virtual void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex)
{ {
UtilMethods.RepairReplicationParameters(ref appendSql,parameters,addIndex); UtilMethods.RepairReplicationParameters(ref appendSql, parameters, addIndex);
} }
#endregion #endregion

View File

@@ -28,6 +28,7 @@ namespace SqlSugar
string GetNoTranslationColumnName(string name); string GetNoTranslationColumnName(string name);
string GetPackTable(string sql,string shortName); string GetPackTable(string sql,string shortName);
string GetDefaultShortName(); string GetDefaultShortName();
string GetUnionAllSql(List<string> sqlList);
void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex); void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex);
} }
} }

View File

@@ -310,6 +310,7 @@ namespace SqlSugar
public virtual ISugarQueryable<T> UnionAll<T>(params ISugarQueryable<T>[] queryables) where T : class, new() public virtual ISugarQueryable<T> UnionAll<T>(params ISugarQueryable<T>[] queryables) where T : class, new()
{ {
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig);
Check.Exception(queryables.IsNullOrEmpty(), "UnionAll.queryables is null "); Check.Exception(queryables.IsNullOrEmpty(), "UnionAll.queryables is null ");
int i = 1; int i = 1;
List<KeyValuePair<string, List<SugarParameter>>> allItems = new List<KeyValuePair<string, List<SugarParameter>>>(); List<KeyValuePair<string, List<SugarParameter>>> allItems = new List<KeyValuePair<string, List<SugarParameter>>>();
@@ -324,7 +325,7 @@ namespace SqlSugar
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(sql, new List<SugarParameter>())); allItems.Add(new KeyValuePair<string, List<SugarParameter>>(sql, new List<SugarParameter>()));
i++; 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 allParameters = allItems.SelectMany(it => it.Value).ToArray();
var resulut = this.Queryable<ExpandoObject>().AS(UtilMethods.GetPackTable(allSql, "unionTable")); var resulut = this.Queryable<ExpandoObject>().AS(UtilMethods.GetPackTable(allSql, "unionTable"));
resulut.AddParameters(allParameters); resulut.AddParameters(allParameters);