选择一定数量的记录进行批处理
问题描述:
嗨,是否有可能使用实体框架和/或LINQ来选择一定数量的行?例如,我想选择第0行到第500000行,并将这些记录分配给List VariableAList对象,然后选择行500001 - 1000000并将其分配给List VariableBList对象等。选择一定数量的记录进行批处理
其中Numbers对象与ID ,数,dateCreated会,DateAssigned等
答
听起来你正在寻找的.Take(int)
和.Skip(int)
方法
using (YourEntities db = new YourEntities())
{
var VariableAList = db.Numbers
.Take(500000);
var VariableBList = db.Numbers
.Skip(500000)
.Take(500000);
}
您可能要警惕在内存中这些列表的大小。
注:您可能还需要之前使用.Skip
或.Take
- 我依稀记得运行到过去这一问题的.OrderBy
条款。
欢呼这就是我所追求的,正在玩弄,但没想到它与跳过结合!你碰巧知道什么是一个好的大小(在内存方面)使用? –
这有点主观取决于你的硬件等。但是,尽可能使用'IQueryable'可以提供帮助,这将取决于你如何使用这些记录。运行你自己的基准测试可能会让你知道你的环境中是否有500,000条记录代表着重大的内存冲击 –