mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Add Queryable.Foreach
This commit is contained in:
parent
1df9b04fa8
commit
4f61d7e03b
@ -185,6 +185,13 @@ namespace OrmTest
|
|||||||
var test30= db.Queryable<Order>().Select(it => new { x = SqlFunc.LessThanOrEqual(1, 2) }).ToList();
|
var test30= db.Queryable<Order>().Select(it => new { x = SqlFunc.LessThanOrEqual(1, 2) }).ToList();
|
||||||
var test31 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThan(1, 2) }).ToList();
|
var test31 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThan(1, 2) }).ToList();
|
||||||
var test32 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThanOrEqual(1, 2) }).ToList();
|
var test32 = db.Queryable<Order>().Select(it => new { x = SqlFunc.GreaterThanOrEqual(1, 2) }).ToList();
|
||||||
|
List<Order> result = new List<Order>();
|
||||||
|
db.Queryable<Order>().ForEach(it =>
|
||||||
|
{
|
||||||
|
result.Add(it);
|
||||||
|
|
||||||
|
},10);
|
||||||
|
var test33= db.Queryable<Order>().ToList();
|
||||||
Console.WriteLine("#### Examples End ####");
|
Console.WriteLine("#### Examples End ####");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1276,6 +1276,23 @@ namespace SqlSugar
|
|||||||
InitMapping();
|
InitMapping();
|
||||||
return _ToList<T>();
|
return _ToList<T>();
|
||||||
}
|
}
|
||||||
|
public virtual void ForEach(Action<T> action, int singleMaxReads = 300,System.Threading.CancellationTokenSource cancellationTokenSource = null)
|
||||||
|
{
|
||||||
|
Check.Exception(this.QueryBuilder.Skip > 0 || this.QueryBuilder.Take > 0, ErrorMessage.GetThrowMessage("no support Skip take, use PageForEach", "不支持Skip Take,请使用 Queryale.PageForEach"));
|
||||||
|
var totalNumber = 0;
|
||||||
|
var totalPage = 1;
|
||||||
|
for (int i = 1; i <= totalPage; i++)
|
||||||
|
{
|
||||||
|
if (cancellationTokenSource?.IsCancellationRequested == true) return;
|
||||||
|
var queryable = this.Clone();
|
||||||
|
var page = queryable.ToPageList(i, singleMaxReads, ref totalNumber, ref totalPage);
|
||||||
|
foreach (var item in page)
|
||||||
|
{
|
||||||
|
if (cancellationTokenSource?.IsCancellationRequested == true) return;
|
||||||
|
action.Invoke(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public List<T> ToOffsetPage(int pageIndex, int pageSize)
|
public List<T> ToOffsetPage(int pageIndex, int pageSize)
|
||||||
{
|
{
|
||||||
if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer)
|
if (this.Context.CurrentConnectionConfig.DbType != DbType.SqlServer)
|
||||||
|
@ -108,6 +108,7 @@ namespace SqlSugar
|
|||||||
ISugarQueryable<TResult> Select<TResult>(string select);
|
ISugarQueryable<TResult> Select<TResult>(string select);
|
||||||
ISugarQueryable<T> Select(string select);
|
ISugarQueryable<T> Select(string select);
|
||||||
ISugarQueryable<T> MergeTable();
|
ISugarQueryable<T> MergeTable();
|
||||||
|
void ForEach(Action<T> action, int singleMaxReads = 300, System.Threading.CancellationTokenSource cancellationTokenSource = null);
|
||||||
|
|
||||||
int Count();
|
int Count();
|
||||||
Task<int> CountAsync();
|
Task<int> CountAsync();
|
||||||
|
Loading…
Reference in New Issue
Block a user