mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-04 04:37:58 +08:00
-
This commit is contained in:
parent
2d4c7ee9e2
commit
fb1fa5d769
@ -29,7 +29,8 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return this.SqlBuilder.QueryBuilder;
|
return this.SqlBuilder.QueryBuilder;
|
||||||
}
|
}
|
||||||
set {
|
set
|
||||||
|
{
|
||||||
this.SqlBuilder.QueryBuilder = value;
|
this.SqlBuilder.QueryBuilder = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,22 +49,12 @@ namespace SqlSugar
|
|||||||
public virtual ISugarQueryable<T> AS<T2>(string tableName)
|
public virtual ISugarQueryable<T> AS<T2>(string tableName)
|
||||||
{
|
{
|
||||||
var entityName = typeof(T2).Name;
|
var entityName = typeof(T2).Name;
|
||||||
IsAs = true;
|
return _As(tableName, entityName);
|
||||||
OldMappingTableList = this.Context.MappingTables;
|
|
||||||
this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables);
|
|
||||||
this.Context.MappingTables.Add(entityName, tableName);
|
|
||||||
this.QueryableMappingTableList = this.Context.MappingTables;
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
public ISugarQueryable<T> AS(string tableName)
|
public ISugarQueryable<T> AS(string tableName)
|
||||||
{
|
{
|
||||||
var entityName = typeof(T).Name;
|
var entityName = typeof(T).Name;
|
||||||
IsAs = true;
|
return _As(tableName, entityName);
|
||||||
OldMappingTableList = this.Context.MappingTables;
|
|
||||||
this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables);
|
|
||||||
this.Context.MappingTables.Add(entityName, tableName);
|
|
||||||
this.QueryableMappingTableList = this.Context.MappingTables;
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
public virtual ISugarQueryable<T> With(string withString)
|
public virtual ISugarQueryable<T> With(string withString)
|
||||||
{
|
{
|
||||||
@ -73,16 +64,7 @@ namespace SqlSugar
|
|||||||
|
|
||||||
public virtual ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter = false)
|
public virtual ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter = false)
|
||||||
{
|
{
|
||||||
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
|
_Filter(FilterName, isDisabledGobalFilter);
|
||||||
if (this.Context.QueryFilter.GeFilterList.IsValuable() && FilterName.IsValuable())
|
|
||||||
{
|
|
||||||
var list = this.Context.QueryFilter.GeFilterList.Where(it => it.FilterName == FilterName && it.IsJoinQuery == !QueryBuilder.IsSingle());
|
|
||||||
foreach (var item in list)
|
|
||||||
{
|
|
||||||
var filterResult = item.FilterValue(this.Context);
|
|
||||||
Where(SqlBuilder.AppendWhereOrAnd(QueryBuilder.WhereInfos.IsNullOrEmpty(), filterResult.Sql), filterResult.Parameters);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +80,12 @@ namespace SqlSugar
|
|||||||
QueryBuilder.Parameters.AddRange(parameters);
|
QueryBuilder.Parameters.AddRange(parameters);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
public virtual ISugarQueryable<T> AddParameters(List<SugarParameter> parameters)
|
||||||
|
{
|
||||||
|
if (parameters != null)
|
||||||
|
QueryBuilder.Parameters.AddRange(parameters);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
public virtual ISugarQueryable<T> AddParameters(SugarParameter parameter)
|
public virtual ISugarQueryable<T> AddParameters(SugarParameter parameter)
|
||||||
{
|
{
|
||||||
if (parameter != null)
|
if (parameter != null)
|
||||||
@ -363,7 +351,7 @@ namespace SqlSugar
|
|||||||
public virtual T Single(Expression<Func<T, bool>> expression)
|
public virtual T Single(Expression<Func<T, bool>> expression)
|
||||||
{
|
{
|
||||||
_Where(expression);
|
_Where(expression);
|
||||||
var result=Single();
|
var result = Single();
|
||||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -389,7 +377,7 @@ namespace SqlSugar
|
|||||||
public virtual T First(Expression<Func<T, bool>> expression)
|
public virtual T First(Expression<Func<T, bool>> expression)
|
||||||
{
|
{
|
||||||
_Where(expression);
|
_Where(expression);
|
||||||
var result= First();
|
var result = First();
|
||||||
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
this.QueryBuilder.WhereInfos.Remove(this.QueryBuilder.WhereInfos.Last());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -785,19 +773,19 @@ namespace SqlSugar
|
|||||||
Task<string> result = new Task<string>(() =>
|
Task<string> result = new Task<string>(() =>
|
||||||
{
|
{
|
||||||
ISugarQueryable<T> asyncQueryable = CopyQueryable();
|
ISugarQueryable<T> asyncQueryable = CopyQueryable();
|
||||||
return asyncQueryable.ToJsonPage(pageIndex,pageSize);
|
return asyncQueryable.ToJsonPage(pageIndex, pageSize);
|
||||||
});
|
});
|
||||||
result.Start();
|
result.Start();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<KeyValuePair<string,int>> ToJsonPageAsync(int pageIndex, int pageSize, int totalNumber)
|
public Task<KeyValuePair<string, int>> ToJsonPageAsync(int pageIndex, int pageSize, int totalNumber)
|
||||||
{
|
{
|
||||||
Task<KeyValuePair<string, int>> result = new Task<KeyValuePair<string, int>>(() =>
|
Task<KeyValuePair<string, int>> result = new Task<KeyValuePair<string, int>>(() =>
|
||||||
{
|
{
|
||||||
int totalNumberAsync = 0;
|
int totalNumberAsync = 0;
|
||||||
ISugarQueryable<T> asyncQueryable = CopyQueryable();
|
ISugarQueryable<T> asyncQueryable = CopyQueryable();
|
||||||
var list= asyncQueryable.ToJsonPage(pageIndex, pageSize,ref totalNumberAsync);
|
var list = asyncQueryable.ToJsonPage(pageIndex, pageSize, ref totalNumberAsync);
|
||||||
return new KeyValuePair<string, int>(list, totalNumberAsync);
|
return new KeyValuePair<string, int>(list, totalNumberAsync);
|
||||||
});
|
});
|
||||||
result.Start();
|
result.Start();
|
||||||
@ -826,7 +814,7 @@ namespace SqlSugar
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<KeyValuePair<DataTable, int>> ToDataTablePageAsync(int pageIndex, int pageSize,int totalNumber)
|
public Task<KeyValuePair<DataTable, int>> ToDataTablePageAsync(int pageIndex, int pageSize, int totalNumber)
|
||||||
{
|
{
|
||||||
Task<KeyValuePair<DataTable, int>> result = new Task<KeyValuePair<DataTable, int>>(() =>
|
Task<KeyValuePair<DataTable, int>> result = new Task<KeyValuePair<DataTable, int>>(() =>
|
||||||
{
|
{
|
||||||
@ -931,6 +919,28 @@ namespace SqlSugar
|
|||||||
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
|
||||||
return Sum<TResult>(lamResult.GetResultString());
|
return Sum<TResult>(lamResult.GetResultString());
|
||||||
}
|
}
|
||||||
|
protected ISugarQueryable<T> _As(string tableName, string entityName)
|
||||||
|
{
|
||||||
|
IsAs = true;
|
||||||
|
OldMappingTableList = this.Context.MappingTables;
|
||||||
|
this.Context.MappingTables = this.Context.Utilities.TranslateCopy(this.Context.MappingTables);
|
||||||
|
this.Context.MappingTables.Add(entityName, tableName);
|
||||||
|
this.QueryableMappingTableList = this.Context.MappingTables;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
protected void _Filter(string FilterName, bool isDisabledGobalFilter)
|
||||||
|
{
|
||||||
|
QueryBuilder.IsDisabledGobalFilter = isDisabledGobalFilter;
|
||||||
|
if (this.Context.QueryFilter.GeFilterList.IsValuable() && FilterName.IsValuable())
|
||||||
|
{
|
||||||
|
var list = this.Context.QueryFilter.GeFilterList.Where(it => it.FilterName == FilterName && it.IsJoinQuery == !QueryBuilder.IsSingle());
|
||||||
|
foreach (var item in list)
|
||||||
|
{
|
||||||
|
var filterResult = item.FilterValue(this.Context);
|
||||||
|
Where(SqlBuilder.AppendWhereOrAnd(QueryBuilder.WhereInfos.IsNullOrEmpty(), filterResult.Sql), filterResult.Parameters);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public ISugarQueryable<T> _PartitionBy(Expression expression)
|
public ISugarQueryable<T> _PartitionBy(Expression expression)
|
||||||
{
|
{
|
||||||
LambdaExpression lambda = expression as LambdaExpression;
|
LambdaExpression lambda = expression as LambdaExpression;
|
||||||
@ -1052,7 +1062,7 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
private ISugarQueryable<T> CopyQueryable()
|
private ISugarQueryable<T> CopyQueryable()
|
||||||
{
|
{
|
||||||
var asyncContext = this.Context.Utilities.CopyContext(this.Context,true);
|
var asyncContext = this.Context.Utilities.CopyContext(this.Context, true);
|
||||||
asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true;
|
asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true;
|
||||||
|
|
||||||
var asyncQueryable = asyncContext.Queryable<ExpandoObject>().Select<T>(string.Empty);
|
var asyncQueryable = asyncContext.Queryable<ExpandoObject>().Select<T>(string.Empty);
|
||||||
@ -1193,6 +1203,53 @@ namespace SqlSugar
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Other
|
||||||
|
public new ISugarQueryable<T, T2> AS<AsT>(string tableName)
|
||||||
|
{
|
||||||
|
var entityName = typeof(AsT).Name;
|
||||||
|
_As(tableName, entityName);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public new ISugarQueryable<T, T2> AS(string tableName)
|
||||||
|
{
|
||||||
|
var entityName = typeof(T).Name;
|
||||||
|
_As(tableName, entityName);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public new ISugarQueryable<T, T2> Filter(string FilterName, bool isDisabledGobalFilter = false) {
|
||||||
|
_Filter(FilterName, isDisabledGobalFilter);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public new ISugarQueryable<T, T2> AddParameters(object parameters) {
|
||||||
|
if (parameters != null)
|
||||||
|
QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public new ISugarQueryable<T, T2> AddParameters(SugarParameter[] parameters) {
|
||||||
|
if (parameters != null)
|
||||||
|
QueryBuilder.Parameters.AddRange(parameters);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public new ISugarQueryable<T, T2> AddParameters(List<SugarParameter> parameters) {
|
||||||
|
if (parameters != null)
|
||||||
|
QueryBuilder.Parameters.AddRange(parameters);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
public new ISugarQueryable<T, T2> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left) {
|
||||||
|
QueryBuilder.JoinIndex = +1;
|
||||||
|
QueryBuilder.JoinQueryInfos
|
||||||
|
.Add(new JoinQueryInfo()
|
||||||
|
{
|
||||||
|
JoinIndex = QueryBuilder.JoinIndex,
|
||||||
|
TableName = tableName,
|
||||||
|
ShortName = shortName,
|
||||||
|
JoinType = type,
|
||||||
|
JoinWhere = joinWhere
|
||||||
|
});
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region T3
|
#region T3
|
||||||
|
@ -19,8 +19,9 @@ namespace SqlSugar
|
|||||||
ISugarQueryable<T> AS(string tableName);
|
ISugarQueryable<T> AS(string tableName);
|
||||||
ISugarQueryable<T> With(string withString);
|
ISugarQueryable<T> With(string withString);
|
||||||
ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter= false);
|
ISugarQueryable<T> Filter(string FilterName, bool isDisabledGobalFilter= false);
|
||||||
ISugarQueryable<T> AddParameters(object pars);
|
ISugarQueryable<T> AddParameters(object parameters);
|
||||||
ISugarQueryable<T> AddParameters(SugarParameter[] pars);
|
ISugarQueryable<T> AddParameters(SugarParameter[] parameters);
|
||||||
|
ISugarQueryable<T> AddParameters(List<SugarParameter> parameters);
|
||||||
ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
|
ISugarQueryable<T> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
|
||||||
|
|
||||||
ISugarQueryable<T> Where(Expression<Func<T, bool>> expression);
|
ISugarQueryable<T> Where(Expression<Func<T, bool>> expression);
|
||||||
@ -158,6 +159,16 @@ namespace SqlSugar
|
|||||||
new ISugarQueryable<T,T2> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
|
new ISugarQueryable<T,T2> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
|
||||||
new ISugarQueryable<T,T2> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
|
new ISugarQueryable<T,T2> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Other
|
||||||
|
new ISugarQueryable<T,T2> AS<AsT>(string tableName);
|
||||||
|
new ISugarQueryable<T,T2> AS(string tableName);
|
||||||
|
new ISugarQueryable<T,T2> Filter(string FilterName, bool isDisabledGobalFilter = false);
|
||||||
|
new ISugarQueryable<T,T2> AddParameters(object parameters);
|
||||||
|
new ISugarQueryable<T,T2> AddParameters(SugarParameter[] parameters);
|
||||||
|
new ISugarQueryable<T, T2> AddParameters(List<SugarParameter> parameters);
|
||||||
|
new ISugarQueryable<T,T2> AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left);
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
public partial interface ISugarQueryable<T, T2, T3> : ISugarQueryable<T>
|
public partial interface ISugarQueryable<T, T2, T3> : ISugarQueryable<T>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user