mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Add db.MasterQueryable<T>
This commit is contained in:
parent
a52be72f1a
commit
0d698ef24f
@ -1415,6 +1415,7 @@ namespace SqlSugar
|
||||
var sqlObj = this.ToSql();
|
||||
RestoreMapping();
|
||||
DataTable result = null;
|
||||
bool isChangeQueryableMasterSlave = GetIsMasterQuery();
|
||||
if (IsCache)
|
||||
{
|
||||
var cacheService = this.Context.CurrentConnectionConfig.ConfigureExternalServices.DataInfoCacheService;
|
||||
@ -1424,6 +1425,7 @@ namespace SqlSugar
|
||||
{
|
||||
result = this.Db.GetDataTable(sqlObj.Key, sqlObj.Value.ToArray());
|
||||
}
|
||||
RestChangeMasterQuery(isChangeQueryableMasterSlave);
|
||||
return result;
|
||||
}
|
||||
public virtual DataTable ToDataTablePage(int pageIndex, int pageSize)
|
||||
@ -3069,10 +3071,30 @@ namespace SqlSugar
|
||||
List<TResult> result;
|
||||
var isComplexModel = QueryBuilder.IsComplexModel(sqlObj.Key);
|
||||
var entityType = typeof(TResult);
|
||||
bool isChangeQueryableMasterSlave = GetIsMasterQuery();
|
||||
var dataReader = this.Db.GetDataReader(sqlObj.Key, sqlObj.Value.ToArray());
|
||||
result = GetData<TResult>(isComplexModel, entityType, dataReader);
|
||||
RestChangeMasterQuery(isChangeQueryableMasterSlave);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void RestChangeMasterQuery(bool isChangeQueryableMasterSlave)
|
||||
{
|
||||
if (isChangeQueryableMasterSlave)
|
||||
this.Context.Ado.IsDisableMasterSlaveSeparation = false;
|
||||
}
|
||||
|
||||
private bool GetIsMasterQuery()
|
||||
{
|
||||
var isChangeQueryableMasterSlave =
|
||||
this.QueryBuilder.IsDisableMasterSlaveSeparation == true &&
|
||||
this.Context.Ado.IsDisableMasterSlaveSeparation == false &&
|
||||
this.Context.Ado.Transaction == null;
|
||||
if (isChangeQueryableMasterSlave)
|
||||
this.Context.Ado.IsDisableMasterSlaveSeparation = true;
|
||||
return isChangeQueryableMasterSlave;
|
||||
}
|
||||
|
||||
protected async Task<List<TResult>> GetDataAsync<TResult>(KeyValuePair<string, List<SugarParameter>> sqlObj)
|
||||
{
|
||||
List<TResult> result;
|
||||
@ -3224,6 +3246,7 @@ namespace SqlSugar
|
||||
_Size=it._Size
|
||||
}).ToList();
|
||||
}
|
||||
asyncQueryableBuilder.IsDisableMasterSlaveSeparation = this.QueryBuilder.IsDisableMasterSlaveSeparation;
|
||||
asyncQueryableBuilder.IsQueryInQuery = this.QueryBuilder.IsQueryInQuery;
|
||||
asyncQueryableBuilder.Includes = this.QueryBuilder.Includes;
|
||||
asyncQueryableBuilder.Take = this.QueryBuilder.Take;
|
||||
|
@ -33,6 +33,7 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#region Splicing basic
|
||||
public bool IsDisableMasterSlaveSeparation { get; set; }
|
||||
public bool IsQueryInQuery { get; set; }
|
||||
public List<object> Includes { get; set; }
|
||||
public List<string> IgnoreColumns { get; set; }
|
||||
|
@ -85,6 +85,12 @@ namespace SqlSugar
|
||||
var sqlBuilder = InstanceFactory.GetSqlbuilder(this.Context.CurrentConnectionConfig);
|
||||
return this.Ado.GetDateTime(sqlBuilder.FullSqlDateNow);
|
||||
}
|
||||
public ISugarQueryable<T> MasterQueryable<T>()
|
||||
{
|
||||
var result = this.Queryable<T>();
|
||||
result.QueryBuilder.IsDisableMasterSlaveSeparation = true;
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// Lambda Query operation
|
||||
/// </summary>
|
||||
|
@ -233,7 +233,10 @@ namespace SqlSugar
|
||||
{
|
||||
ScopedContext.Open();
|
||||
}
|
||||
|
||||
public ISugarQueryable<T> MasterQueryable<T>()
|
||||
{
|
||||
return ScopedContext.MasterQueryable<T>();
|
||||
}
|
||||
public ISugarQueryable<ExpandoObject> Queryable(string tableName, string shortName)
|
||||
{
|
||||
return ScopedContext.Queryable(tableName, shortName);
|
||||
|
@ -66,6 +66,7 @@ namespace SqlSugar
|
||||
#endregion
|
||||
|
||||
#region Queryable
|
||||
ISugarQueryable<T> MasterQueryable<T>();
|
||||
ISugarQueryable<T> SqlQueryable<T>(string sql) where T : class, new();
|
||||
ISugarQueryable<ExpandoObject> Queryable(string tableName, string shortName);
|
||||
ISugarQueryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Queryable<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, bool>> joinExpression) where T : class, new();
|
||||
|
@ -126,6 +126,10 @@ namespace SqlSugar
|
||||
}
|
||||
#endregion
|
||||
|
||||
public ISugarQueryable<T> MasterQueryable<T>()
|
||||
{
|
||||
return this.Context.MasterQueryable<T>();
|
||||
}
|
||||
public ISugarQueryable<T> SqlQueryable<T>(string sql) where T : class, new()
|
||||
{
|
||||
return this.Context.SqlQueryable<T>(sql);
|
||||
|
@ -220,6 +220,10 @@ namespace SqlSugar
|
||||
ScopedContext.Open();
|
||||
}
|
||||
|
||||
public ISugarQueryable<T> MasterQueryable<T>()
|
||||
{
|
||||
return ScopedContext.MasterQueryable<T>();
|
||||
}
|
||||
public ISugarQueryable<ExpandoObject> Queryable(string tableName, string shortName)
|
||||
{
|
||||
return ScopedContext.Queryable(tableName,shortName);
|
||||
|
Loading…
Reference in New Issue
Block a user