mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
-
This commit is contained in:
parent
0a1f788901
commit
185e5349fc
@ -15,7 +15,7 @@ namespace SqlSugar
|
|||||||
/// ** date:2017/1/2
|
/// ** date:2017/1/2
|
||||||
/// ** email:610262374@qq.com
|
/// ** email:610262374@qq.com
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class SqlSugarProvider: ISqlSugarClient
|
public partial class SqlSugarProvider : ISqlSugarClient
|
||||||
{
|
{
|
||||||
|
|
||||||
#region Constructor
|
#region Constructor
|
||||||
@ -139,7 +139,7 @@ namespace SqlSugar
|
|||||||
this.CreateQueryJoin(joinExpression, types, queryable);
|
this.CreateQueryJoin(joinExpression, types, queryable);
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T, T2, T3> Queryable<T, T2, T3>(Expression<Func<T, T2, T3,JoinQueryInfos>> joinExpression)
|
public virtual ISugarQueryable<T, T2, T3> Queryable<T, T2, T3>(Expression<Func<T, T2, T3, JoinQueryInfos>> joinExpression)
|
||||||
{
|
{
|
||||||
InitMappingInfo<T, T2, T3>();
|
InitMappingInfo<T, T2, T3>();
|
||||||
var types = new Type[] { typeof(T2), typeof(T3) };
|
var types = new Type[] { typeof(T2), typeof(T3) };
|
||||||
@ -155,7 +155,7 @@ namespace SqlSugar
|
|||||||
this.CreateQueryJoin(joinExpression, types, queryable);
|
this.CreateQueryJoin(joinExpression, types, queryable);
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T, T2, T3, T4> Queryable<T, T2, T3, T4>(Expression<Func<T, T2, T3, T4,JoinQueryInfos>> joinExpression)
|
public virtual ISugarQueryable<T, T2, T3, T4> Queryable<T, T2, T3, T4>(Expression<Func<T, T2, T3, T4, JoinQueryInfos>> joinExpression)
|
||||||
{
|
{
|
||||||
InitMappingInfo<T, T2, T3, T4>();
|
InitMappingInfo<T, T2, T3, T4>();
|
||||||
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4) };
|
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4) };
|
||||||
@ -171,7 +171,7 @@ namespace SqlSugar
|
|||||||
this.CreateQueryJoin(joinExpression, types, queryable);
|
this.CreateQueryJoin(joinExpression, types, queryable);
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T, T2, T3, T4, T5> Queryable<T, T2, T3, T4, T5>(Expression<Func<T, T2, T3, T4, T5,JoinQueryInfos>> joinExpression)
|
public virtual ISugarQueryable<T, T2, T3, T4, T5> Queryable<T, T2, T3, T4, T5>(Expression<Func<T, T2, T3, T4, T5, JoinQueryInfos>> joinExpression)
|
||||||
{
|
{
|
||||||
InitMappingInfo<T, T2, T3, T4, T5>();
|
InitMappingInfo<T, T2, T3, T4, T5>();
|
||||||
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5) };
|
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5) };
|
||||||
@ -268,7 +268,7 @@ namespace SqlSugar
|
|||||||
this.CreateQueryJoin(joinExpression, types, queryable);
|
this.CreateQueryJoin(joinExpression, types, queryable);
|
||||||
return queryable;
|
return queryable;
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,JoinQueryInfos>> joinExpression)
|
public virtual ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, JoinQueryInfos>> joinExpression)
|
||||||
{
|
{
|
||||||
InitMappingInfo<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>();
|
InitMappingInfo<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>();
|
||||||
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9), typeof(T10), typeof(T11) };
|
var types = new Type[] { typeof(T2), typeof(T3), typeof(T4), typeof(T5), typeof(T6), typeof(T7), typeof(T8), typeof(T9), typeof(T10), typeof(T11) };
|
||||||
@ -467,7 +467,14 @@ namespace SqlSugar
|
|||||||
var allParameters = allItems.SelectMany(it => it.Value).ToArray();
|
var allParameters = allItems.SelectMany(it => it.Value).ToArray();
|
||||||
var resulut = this.Context.Queryable<ExpandoObject>().AS(UtilMethods.GetPackTable(allSql, "unionTable")).With(SqlWith.Null);
|
var resulut = this.Context.Queryable<ExpandoObject>().AS(UtilMethods.GetPackTable(allSql, "unionTable")).With(SqlWith.Null);
|
||||||
resulut.AddParameters(allParameters);
|
resulut.AddParameters(allParameters);
|
||||||
return resulut.Select<T>(sqlBuilder.SqlSelectAll);
|
if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle && sqlBuilder.SqlSelectAll == "*")
|
||||||
|
{
|
||||||
|
return resulut.Select<T>("unionTable.*");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return resulut.Select<T>(sqlBuilder.SqlSelectAll);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> UnionAll<T>(List<ISugarQueryable<T>> queryables) where T : class, new()
|
public virtual ISugarQueryable<T> UnionAll<T>(List<ISugarQueryable<T>> queryables) where T : class, new()
|
||||||
{
|
{
|
||||||
@ -495,7 +502,14 @@ namespace SqlSugar
|
|||||||
var allParameters = allItems.SelectMany(it => it.Value).ToArray();
|
var allParameters = allItems.SelectMany(it => it.Value).ToArray();
|
||||||
var resulut = this.Context.Queryable<ExpandoObject>().AS(UtilMethods.GetPackTable(allSql, "unionTable")).With(SqlWith.Null);
|
var resulut = this.Context.Queryable<ExpandoObject>().AS(UtilMethods.GetPackTable(allSql, "unionTable")).With(SqlWith.Null);
|
||||||
resulut.AddParameters(allParameters);
|
resulut.AddParameters(allParameters);
|
||||||
return resulut.Select<T>(sqlBuilder.SqlSelectAll);
|
if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle && sqlBuilder.SqlSelectAll == "*")
|
||||||
|
{
|
||||||
|
return resulut.Select<T>("unionTable.*");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return resulut.Select<T>(sqlBuilder.SqlSelectAll);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> Union<T>(List<ISugarQueryable<T>> queryables) where T : class, new()
|
public virtual ISugarQueryable<T> Union<T>(List<ISugarQueryable<T>> queryables) where T : class, new()
|
||||||
{
|
{
|
||||||
@ -521,7 +535,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public virtual IInsertable<T> Insertable<T>(List<T> insertObjs) where T : class, new()
|
public virtual IInsertable<T> Insertable<T>(List<T> insertObjs) where T : class, new()
|
||||||
{
|
{
|
||||||
if (insertObjs == null|| insertObjs.IsNullOrEmpty())
|
if (insertObjs == null || insertObjs.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
insertObjs = new List<T>();
|
insertObjs = new List<T>();
|
||||||
insertObjs.Add(default(T));
|
insertObjs.Add(default(T));
|
||||||
@ -630,7 +644,7 @@ namespace SqlSugar
|
|||||||
result.UpdateParameterIsNull = true;
|
result.UpdateParameterIsNull = true;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public virtual IUpdateable<T> Updateable<T>(Dictionary<string, object> columnDictionary) where T : class, new()
|
public virtual IUpdateable<T> Updateable<T>(Dictionary<string, object> columnDictionary) where T : class, new()
|
||||||
{
|
{
|
||||||
@ -796,7 +810,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public async Task<int> SaveQueuesAsync(bool isTran = true)
|
public async Task<int> SaveQueuesAsync(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.ExecuteCommandAsync(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.ExecuteCommandAsync(sql, parameters); });
|
||||||
}
|
}
|
||||||
public List<T> SaveQueues<T>(bool isTran = true)
|
public List<T> SaveQueues<T>(bool isTran = true)
|
||||||
{
|
{
|
||||||
@ -804,7 +818,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<List<T>> SaveQueuesAsync<T>(bool isTran = true)
|
public async Task<List<T>> SaveQueuesAsync<T>(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T>(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T>(sql, parameters); });
|
||||||
}
|
}
|
||||||
public Tuple<List<T>, List<T2>> SaveQueues<T, T2>(bool isTran = true)
|
public Tuple<List<T>, List<T2>> SaveQueues<T, T2>(bool isTran = true)
|
||||||
{
|
{
|
||||||
@ -812,7 +826,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<Tuple<List<T>, List<T2>>> SaveQueuesAsync<T, T2>(bool isTran = true)
|
public async Task<Tuple<List<T>, List<T2>>> SaveQueuesAsync<T, T2>(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2>(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2>(sql, parameters); });
|
||||||
}
|
}
|
||||||
public Tuple<List<T>, List<T2>, List<T3>> SaveQueues<T, T2, T3>(bool isTran = true)
|
public Tuple<List<T>, List<T2>, List<T3>> SaveQueues<T, T2, T3>(bool isTran = true)
|
||||||
{
|
{
|
||||||
@ -820,7 +834,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<Tuple<List<T>, List<T2>, List<T3>>> SaveQueuesAsync<T, T2, T3>(bool isTran = true)
|
public async Task<Tuple<List<T>, List<T2>, List<T3>>> SaveQueuesAsync<T, T2, T3>(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3>(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3>(sql, parameters); });
|
||||||
}
|
}
|
||||||
public Tuple<List<T>, List<T2>, List<T3>, List<T4>> SaveQueues<T, T2, T3, T4>(bool isTran = true)
|
public Tuple<List<T>, List<T2>, List<T3>, List<T4>> SaveQueues<T, T2, T3, T4>(bool isTran = true)
|
||||||
{
|
{
|
||||||
@ -828,7 +842,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>>> SaveQueuesAsync<T, T2, T3, T4>(bool isTran = true)
|
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>>> SaveQueuesAsync<T, T2, T3, T4>(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4>(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4>(sql, parameters); });
|
||||||
}
|
}
|
||||||
public Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>> SaveQueues<T, T2, T3, T4, T5>(bool isTran = true)
|
public Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>> SaveQueues<T, T2, T3, T4, T5>(bool isTran = true)
|
||||||
{
|
{
|
||||||
@ -836,7 +850,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>>> SaveQueuesAsync<T, T2, T3, T4, T5>(bool isTran = true)
|
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>>> SaveQueuesAsync<T, T2, T3, T4, T5>(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4, T5>(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4, T5>(sql, parameters); });
|
||||||
}
|
}
|
||||||
public Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>> SaveQueues<T, T2, T3, T4, T5, T6>(bool isTran = true)
|
public Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>> SaveQueues<T, T2, T3, T4, T5, T6>(bool isTran = true)
|
||||||
{
|
{
|
||||||
@ -844,7 +858,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>>> SaveQueuesAsync<T, T2, T3, T4, T5, T6>(bool isTran = true)
|
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>>> SaveQueuesAsync<T, T2, T3, T4, T5, T6>(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4, T5, T6>(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4, T5, T6>(sql, parameters); });
|
||||||
}
|
}
|
||||||
public Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>, List<T7>> SaveQueues<T, T2, T3, T4, T5, T6, T7>(bool isTran = true)
|
public Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>, List<T7>> SaveQueues<T, T2, T3, T4, T5, T6, T7>(bool isTran = true)
|
||||||
{
|
{
|
||||||
@ -852,17 +866,17 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>, List<T7>>> SaveQueuesAsync<T, T2, T3, T4, T5, T6, T7>(bool isTran = true)
|
public async Task<Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>, List<T7>>> SaveQueuesAsync<T, T2, T3, T4, T5, T6, T7>(bool isTran = true)
|
||||||
{
|
{
|
||||||
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4, T5, T6, T7>(sql, parameters); });
|
return await SaveQueuesProviderAsync(isTran, (sql, parameters) => { return this.Ado.SqlQueryAsync<T, T2, T3, T4, T5, T6, T7>(sql, parameters); });
|
||||||
}
|
}
|
||||||
public void AddQueue(string sql, object parsmeters=null)
|
public void AddQueue(string sql, object parsmeters = null)
|
||||||
{
|
{
|
||||||
if (Queues == null)
|
if (Queues == null)
|
||||||
{
|
{
|
||||||
Queues = new QueueList();
|
Queues = new QueueList();
|
||||||
}
|
}
|
||||||
this.Queues.Add(sql,this.Context.Ado.GetParameters(parsmeters));
|
this.Queues.Add(sql, this.Context.Ado.GetParameters(parsmeters));
|
||||||
}
|
}
|
||||||
public void AddQueue(string sql, SugarParameter parsmeter)
|
public void AddQueue(string sql, SugarParameter parsmeter)
|
||||||
{
|
{
|
||||||
if (Queues == null)
|
if (Queues == null)
|
||||||
{
|
{
|
||||||
@ -878,7 +892,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
this.Queues.Add(sql, parsmeters);
|
this.Queues.Add(sql, parsmeters);
|
||||||
}
|
}
|
||||||
public QueueList Queues { get { if (_Queues == null) { _Queues = new QueueList(); } return _Queues; } set { _Queues = value; } }
|
public QueueList Queues { get { if (_Queues == null) { _Queues = new QueueList(); } return _Queues; } set { _Queues = value; } }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -922,7 +936,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.Queues.Clear();
|
this.Queues.Clear();
|
||||||
var result =await func(sqlBuilder.ToString(), parsmeters);
|
var result = await func(sqlBuilder.ToString(), parsmeters);
|
||||||
if (isTran) this.Ado.CommitTran();
|
if (isTran) this.Ado.CommitTran();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -936,7 +950,8 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (this.CurrentConnectionConfig.DbType == DbType.Oracle) {
|
if (this.CurrentConnectionConfig.DbType == DbType.Oracle)
|
||||||
|
{
|
||||||
throw new Exception("Oracle no support SaveQueues");
|
throw new Exception("Oracle no support SaveQueues");
|
||||||
}
|
}
|
||||||
if (this.Queues == null || this.Queues.Count == 0) return default(T);
|
if (this.Queues == null || this.Queues.Count == 0) return default(T);
|
||||||
@ -970,7 +985,7 @@ namespace SqlSugar
|
|||||||
.TrimEnd('\n')
|
.TrimEnd('\n')
|
||||||
.TrimEnd('\r')
|
.TrimEnd('\r')
|
||||||
.TrimEnd('\n')
|
.TrimEnd('\n')
|
||||||
.TrimEnd(';')+";";
|
.TrimEnd(';') + ";";
|
||||||
sqlBuilder.AppendLine(itemSql);
|
sqlBuilder.AppendLine(itemSql);
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user