Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 选择一定数量的记录进行批处理_Asp.net Mvc_C# 4.0_Entity Framework 4 - Fatal编程技术网

Asp.net mvc 选择一定数量的记录进行批处理

Asp.net mvc 选择一定数量的记录进行批处理,asp.net-mvc,c#-4.0,entity-framework-4,Asp.net Mvc,C# 4.0,Entity Framework 4,Hi是否可以使用实体框架和/或linq选择一定数量的行?例如,我想选择行0-500000并将这些记录分配给List VariableList对象,然后选择行500001-1000000并将其分配给List VariableList对象,等等 其中Numbers对象类似于ID、Number、DateCreated、DateAssigned等。听起来像是在寻找.Take(int)和.Skip(int)方法 using (YourEntities db = new YourEntities()) {

Hi是否可以使用实体框架和/或linq选择一定数量的行?例如,我想选择行0-500000并将这些记录分配给List VariableList对象,然后选择行500001-1000000并将其分配给List VariableList对象,等等


其中Numbers对象类似于ID、Number、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
之前,您可能还需要一个
.OrderBy
子句。Take
——我模糊地记得以前遇到过这个问题。

干杯,这正是我想要的,我一直在玩弄Take,但没有想到将其与Skip结合起来!你知道什么是好的大小(就内存而言)吗?这有点主观,取决于你的硬件等。但是,尽可能使用
IQueryable
,会有所帮助,这取决于你如何使用这些记录。运行您自己的基准测试可能会让您了解环境中500000条记录是否代表了一次重大的内存损失