mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2026-02-25 04:27:14 +08:00
Update union all
This commit is contained in:
@@ -331,7 +331,17 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return new KeyValuePair<string, SugarParameter[]>(builder.ToString(), parameters.ToArray());
|
return new KeyValuePair<string, SugarParameter[]>(builder.ToString(), parameters.ToArray());
|
||||||
}
|
}
|
||||||
|
public virtual string GetUnionFomatSql(string sql)
|
||||||
|
{
|
||||||
|
if (this.Context.CurrentConnectionConfig.DbType.IsIn(DbType.MySql, DbType.PostgreSQL,DbType.MySqlConnector))
|
||||||
|
{
|
||||||
|
return $" ( {sql} ) ";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return sql;
|
||||||
|
}
|
||||||
|
}
|
||||||
private void BuilderTree(StringBuilder builder,ConditionalTree item,ref int indexTree, List<SugarParameter> parameters,ref int mainIndex)
|
private void BuilderTree(StringBuilder builder,ConditionalTree item,ref int indexTree, List<SugarParameter> parameters,ref int mainIndex)
|
||||||
{
|
{
|
||||||
var conditionals = ToConditionalCollections(item,ref indexTree, parameters);
|
var conditionals = ToConditionalCollections(item,ref indexTree, parameters);
|
||||||
|
|||||||
@@ -520,9 +520,9 @@ namespace SqlSugar
|
|||||||
string sql = sqlObj.Key;
|
string sql = sqlObj.Key;
|
||||||
UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i, "UnionAll");
|
UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i, "UnionAll");
|
||||||
if (sqlObj.Value.HasValue())
|
if (sqlObj.Value.HasValue())
|
||||||
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(GetUnionFomatSql(sql), sqlObj.Value));
|
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(sqlBuilder.GetUnionFomatSql(sql), sqlObj.Value));
|
||||||
else
|
else
|
||||||
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(GetUnionFomatSql(sql), new List<SugarParameter>()));
|
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(sqlBuilder.GetUnionFomatSql(sql), new List<SugarParameter>()));
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
var allSql = sqlBuilder.GetUnionAllSql(allItems.Select(it => it.Key).ToList());
|
var allSql = sqlBuilder.GetUnionAllSql(allItems.Select(it => it.Key).ToList());
|
||||||
@@ -557,9 +557,9 @@ namespace SqlSugar
|
|||||||
string sql = sqlObj.Key;
|
string sql = sqlObj.Key;
|
||||||
UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i, "Union");
|
UtilMethods.RepairReplicationParameters(ref sql, sqlObj.Value.ToArray(), i, "Union");
|
||||||
if (sqlObj.Value.HasValue())
|
if (sqlObj.Value.HasValue())
|
||||||
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(GetUnionFomatSql(sql), sqlObj.Value));
|
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(sqlBuilder.GetUnionFomatSql(sql), sqlObj.Value));
|
||||||
else
|
else
|
||||||
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(GetUnionFomatSql(sql), new List<SugarParameter>()));
|
allItems.Add(new KeyValuePair<string, List<SugarParameter>>(sqlBuilder.GetUnionFomatSql(sql), new List<SugarParameter>()));
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
var allSql = sqlBuilder.GetUnionSql(allItems.Select(it => it.Key).ToList());
|
var allSql = sqlBuilder.GetUnionSql(allItems.Select(it => it.Key).ToList());
|
||||||
@@ -580,17 +580,6 @@ namespace SqlSugar
|
|||||||
Check.Exception(queryables.IsNullOrEmpty(), "Union.queryables is null ");
|
Check.Exception(queryables.IsNullOrEmpty(), "Union.queryables is null ");
|
||||||
return Union(queryables.ToArray());
|
return Union(queryables.ToArray());
|
||||||
}
|
}
|
||||||
private string GetUnionFomatSql(string sql)
|
|
||||||
{
|
|
||||||
if (this.CurrentConnectionConfig.DbType == DbType.Access)
|
|
||||||
{
|
|
||||||
return sql;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return $" ( {sql} ) ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region SqlQueryable
|
#region SqlQueryable
|
||||||
|
|||||||
@@ -41,5 +41,6 @@ namespace SqlSugar
|
|||||||
string GetUnionSql(List<string> sqlList);
|
string GetUnionSql(List<string> sqlList);
|
||||||
void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex);
|
void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex);
|
||||||
KeyValuePair<string, SugarParameter[]> ConditionalModelToSql(List<IConditionalModel> models, int beginIndex = 0);
|
KeyValuePair<string, SugarParameter[]> ConditionalModelToSql(List<IConditionalModel> models, int beginIndex = 0);
|
||||||
|
string GetUnionFomatSql(string sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user