mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-31 15:56:25 +08:00
增加异步ToPivotTableAsync、ToPivotListAsync、ToPivotEnumerableAsync和ToPivotJsonAsync
This commit is contained in:
parent
85343ebaab
commit
f637eb622b
@ -224,13 +224,17 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber), typeof(T));
|
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber), typeof(T));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region 内存行转列
|
||||||
|
|
||||||
|
#region 同步
|
||||||
public virtual DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
return this.ToList().ToPivotTable(columnSelector, rowSelector, dataSelector);
|
return this.ToList().ToPivotTable(columnSelector, rowSelector, dataSelector);
|
||||||
}
|
}
|
||||||
public virtual List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
return ToPivotEnumerable(columnSelector,rowSelector,dataSelector).ToList();
|
return ToPivotEnumerable(columnSelector, rowSelector, dataSelector).ToList();
|
||||||
}
|
}
|
||||||
public virtual IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
@ -238,9 +242,33 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public virtual string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
var list = this.ToPivotList(columnSelector, rowSelector, dataSelector);
|
var list = ToPivotEnumerable(columnSelector, rowSelector, dataSelector).ToList();
|
||||||
return this.Context.Utilities.SerializeObject(list);
|
return this.Context.Utilities.SerializeObject(list);
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 异步
|
||||||
|
public virtual async Task<DataTable> ToPivotTableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
return (await this.ToListAsync()).ToPivotTable(columnSelector, rowSelector, dataSelector);
|
||||||
|
}
|
||||||
|
public virtual async Task<List<dynamic>> ToPivotListAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
return (await ToPivotEnumerableAsync(columnSelector, rowSelector, dataSelector)).ToList();
|
||||||
|
}
|
||||||
|
public virtual async Task<IEnumerable<dynamic>> ToPivotEnumerableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
return (await this.ToListAsync()).ToPivotList(columnSelector, rowSelector, dataSelector);
|
||||||
|
}
|
||||||
|
public virtual async Task<string> ToPivotJsonAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
var list = (await ToPivotEnumerableAsync(columnSelector, rowSelector, dataSelector)).ToList();
|
||||||
|
return this.Context.Utilities.SerializeObject(list);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
public List<T> ToChildList(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, bool isContainOneself = true)
|
public List<T> ToChildList(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, bool isContainOneself = true)
|
||||||
{
|
{
|
||||||
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||||
|
@ -285,10 +285,25 @@ namespace SqlSugar
|
|||||||
void AddQueue();
|
void AddQueue();
|
||||||
ISugarQueryable<T> IgnoreColumns(Expression<Func<T, object>> columns);
|
ISugarQueryable<T> IgnoreColumns(Expression<Func<T, object>> columns);
|
||||||
ISugarQueryable<T> IgnoreColumns(params string[] columns);
|
ISugarQueryable<T> IgnoreColumns(params string[] columns);
|
||||||
DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector,Expression<Func<T, TRow>> rowSelector,Func<IEnumerable<T>, TData> dataSelector);
|
|
||||||
|
#region 内存行转列
|
||||||
|
|
||||||
|
#region 同步
|
||||||
|
DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 异步
|
||||||
|
Task<DataTable> ToPivotTableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
Task<List<dynamic>> ToPivotListAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
Task<IEnumerable<dynamic>> ToPivotEnumerableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
Task<string> ToPivotJsonAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
ISugarQueryable<T> SplitTable(Func<List<SplitTableInfo>,IEnumerable<SplitTableInfo>> getTableNamesFunc);
|
ISugarQueryable<T> SplitTable(Func<List<SplitTableInfo>,IEnumerable<SplitTableInfo>> getTableNamesFunc);
|
||||||
ISugarQueryable<T> SplitTable(DateTime beginTime,DateTime endTime);
|
ISugarQueryable<T> SplitTable(DateTime beginTime,DateTime endTime);
|
||||||
ISugarQueryable<T> SplitTable();
|
ISugarQueryable<T> SplitTable();
|
||||||
|
@ -224,13 +224,17 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber), typeof(T));
|
return this.Context.Utilities.SerializeObject(this.ToPageList(pageIndex, pageSize, ref totalNumber), typeof(T));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region 内存行转列
|
||||||
|
|
||||||
|
#region 同步
|
||||||
public virtual DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
return this.ToList().ToPivotTable(columnSelector, rowSelector, dataSelector);
|
return this.ToList().ToPivotTable(columnSelector, rowSelector, dataSelector);
|
||||||
}
|
}
|
||||||
public virtual List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
return ToPivotEnumerable(columnSelector,rowSelector,dataSelector).ToList();
|
return ToPivotEnumerable(columnSelector, rowSelector, dataSelector).ToList();
|
||||||
}
|
}
|
||||||
public virtual IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
@ -238,9 +242,33 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
public virtual string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
public virtual string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
{
|
{
|
||||||
var list = this.ToPivotList(columnSelector, rowSelector, dataSelector);
|
var list = ToPivotEnumerable(columnSelector, rowSelector, dataSelector).ToList();
|
||||||
return this.Context.Utilities.SerializeObject(list);
|
return this.Context.Utilities.SerializeObject(list);
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 异步
|
||||||
|
public virtual async Task<DataTable> ToPivotTableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
return (await this.ToListAsync()).ToPivotTable(columnSelector, rowSelector, dataSelector);
|
||||||
|
}
|
||||||
|
public virtual async Task<List<dynamic>> ToPivotListAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
return (await ToPivotEnumerableAsync(columnSelector, rowSelector, dataSelector)).ToList();
|
||||||
|
}
|
||||||
|
public virtual async Task<IEnumerable<dynamic>> ToPivotEnumerableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
return (await this.ToListAsync()).ToPivotList(columnSelector, rowSelector, dataSelector);
|
||||||
|
}
|
||||||
|
public virtual async Task<string> ToPivotJsonAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector)
|
||||||
|
{
|
||||||
|
var list = (await ToPivotEnumerableAsync(columnSelector, rowSelector, dataSelector)).ToList();
|
||||||
|
return this.Context.Utilities.SerializeObject(list);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
public List<T> ToChildList(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, bool isContainOneself = true)
|
public List<T> ToChildList(Expression<Func<T, object>> parentIdExpression, object primaryKeyValue, bool isContainOneself = true)
|
||||||
{
|
{
|
||||||
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||||
|
@ -285,10 +285,25 @@ namespace SqlSugar
|
|||||||
void AddQueue();
|
void AddQueue();
|
||||||
ISugarQueryable<T> IgnoreColumns(Expression<Func<T, object>> columns);
|
ISugarQueryable<T> IgnoreColumns(Expression<Func<T, object>> columns);
|
||||||
ISugarQueryable<T> IgnoreColumns(params string[] columns);
|
ISugarQueryable<T> IgnoreColumns(params string[] columns);
|
||||||
DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector,Expression<Func<T, TRow>> rowSelector,Func<IEnumerable<T>, TData> dataSelector);
|
|
||||||
|
#region 内存行转列
|
||||||
|
|
||||||
|
#region 同步
|
||||||
|
DataTable ToPivotTable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
List<dynamic> ToPivotList<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
IEnumerable<dynamic> ToPivotEnumerable<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
string ToPivotJson<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 异步
|
||||||
|
Task<DataTable> ToPivotTableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
Task<List<dynamic>> ToPivotListAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
Task<IEnumerable<dynamic>> ToPivotEnumerableAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
Task<string> ToPivotJsonAsync<TColumn, TRow, TData>(Func<T, TColumn> columnSelector, Expression<Func<T, TRow>> rowSelector, Func<IEnumerable<T>, TData> dataSelector);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
ISugarQueryable<T> SplitTable(Func<List<SplitTableInfo>,IEnumerable<SplitTableInfo>> getTableNamesFunc);
|
ISugarQueryable<T> SplitTable(Func<List<SplitTableInfo>,IEnumerable<SplitTableInfo>> getTableNamesFunc);
|
||||||
ISugarQueryable<T> SplitTable(DateTime beginTime,DateTime endTime);
|
ISugarQueryable<T> SplitTable(DateTime beginTime,DateTime endTime);
|
||||||
ISugarQueryable<T> SplitTable();
|
ISugarQueryable<T> SplitTable();
|
||||||
|
Loading…
Reference in New Issue
Block a user