选择一定数量的记录进行批处理

问题描述:

嗨,是否有可能使用实体框架和/或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条款。

+0

欢呼这就是我所追求的,正在玩弄,但没想到它与跳过结合!你碰巧知道什么是一个好的大小(在内存方面)使用? –

+1

这有点主观取决于你的硬件等。但是,尽可能使用'IQueryable'可以提供帮助,这将取决于你如何使用这些记录。运行你自己的基准测试可能会让你知道你的环境中是否有500,000条记录代表着重大的内存冲击 –