mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-30 22:10:22 +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));
|
||||
}
|
||||
|
||||
#region 内存行转列
|
||||
|
||||
#region 同步
|
||||
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);
|
||||
}
|
||||
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)
|
||||
{
|
||||
@ -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)
|
||||
{
|
||||
var list = this.ToPivotList(columnSelector, rowSelector, dataSelector);
|
||||
var list = ToPivotEnumerable(columnSelector, rowSelector, dataSelector).ToList();
|
||||
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)
|
||||
{
|
||||
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
|
@ -285,10 +285,25 @@ namespace SqlSugar
|
||||
void AddQueue();
|
||||
ISugarQueryable<T> IgnoreColumns(Expression<Func<T, object>> 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);
|
||||
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);
|
||||
#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(DateTime beginTime,DateTime endTime);
|
||||
ISugarQueryable<T> SplitTable();
|
||||
|
@ -224,13 +224,17 @@ namespace SqlSugar
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
@ -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)
|
||||
{
|
||||
var list = this.ToPivotList(columnSelector, rowSelector, dataSelector);
|
||||
var list = ToPivotEnumerable(columnSelector, rowSelector, dataSelector).ToList();
|
||||
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)
|
||||
{
|
||||
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
|
@ -285,10 +285,25 @@ namespace SqlSugar
|
||||
void AddQueue();
|
||||
ISugarQueryable<T> IgnoreColumns(Expression<Func<T, object>> 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);
|
||||
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);
|
||||
#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(DateTime beginTime,DateTime endTime);
|
||||
ISugarQueryable<T> SplitTable();
|
||||
|
Loading…
Reference in New Issue
Block a user