C# 是否可以使用LinQ和take()从数据库表中获取100条记录,然后再获取其他100条记录

C# 是否可以使用LinQ和take()从数据库表中获取100条记录,然后再获取其他100条记录,c#,entity-framework,linq,code-first,C#,Entity Framework,Linq,Code First,使用代码优先,Oracle数据库 如果有大量数据,我需要选择前100个记录, 但我也需要有一个可能性,以获得其余的记录,那么如何采取下一个100记录从101开始 是否有可能使用Linq Take()执行此操作 List myList=new List(); List newList=新列表(); myList=DBContext.MyTable.Where(x=>x.ID==someParam).Select(x=>x.ID.toList(); int recodCount=myList.Cou

使用代码优先,Oracle数据库 如果有大量数据,我需要选择前100个记录, 但我也需要有一个可能性,以获得其余的记录,那么如何采取下一个100记录从101开始

是否有可能使用Linq Take()执行此操作

List myList=new List();
List newList=新列表();
myList=DBContext.MyTable.Where(x=>x.ID==someParam).Select(x=>x.ID.toList();
int recodCount=myList.Count();
如果(重新计数>1000)
{
AddRange(myList.Take(100));
}
其他的
{
newList.AddRange(myList);
}

我想您需要分页,您需要定义pageIndex和pageSize

myList = DBContext.MyTable
                  .Where(x=>x.ID == someParam)
                  .Skip((pageIndex - 1) * pageSize)
                  .Take(pageSize);
但是如果你只想跳过100,你缺少的是
skip


就像Tim说的,不要在乞讨中调用ToList(),这将选择内存中的所有内容。也不要调用
Count()
检查
if(Count>100)
。您应该使用:
if(myList.Skip(number).Any())
如果您的集合的记录多于number,则这将是正确的。

我想您需要分页,您需要定义pageIndex和pageSize

myList = DBContext.MyTable
                  .Where(x=>x.ID == someParam)
                  .Skip((pageIndex - 1) * pageSize)
                  .Take(pageSize);
但是如果你只想跳过100,你缺少的是
skip



就像Tim说的,不要在乞讨中调用ToList(),这将选择内存中的所有内容。也不要调用
Count()
检查
if(Count>100)
。您应该使用:
if(myList.Skip(number).Any())
如果您的集合中的记录多于number,则这将是正确的。

查看Skip()
database.Skip(100).Take(100)使用
ToList
作为最终语句,否则您将选择全部进入memory@TimSchmelter你上面的评论不正确。。。。。它们将不会被具体化,sudosql将被生成但不会执行。。。如果您想在调试器中看到需要“ToList”的值,则它们都将加载到调试器中mem@Seabizkit. OP调用
ToList
两次。嗯,在
之后的第一次,其中
已经被过滤了。但他不需要两个列表使用
ToList
作为最终语句,否则您将选择全部进入memory@TimSchmelter你上面的评论不正确。。。。。它们将不会被具体化,sudosql将被生成但不会执行。。。如果您想在调试器中看到需要“ToList”的值,则它们都将加载到调试器中mem@Seabizkit. OP调用
ToList
两次。嗯,在
之后的第一次,其中
已经被过滤了。但他不需要两张单子,我需要这些唱片。。。但仍在努力提高性能。。。当我有一个新列表时,我需要另一个,我正在尝试使用Include()创建它。。因此,如果我有100条记录并首先显示它们(它运行得很快),我希望这100条记录能够获得所需的信息)@Songaila好的,不要像我写的那样在乞讨支票中打电话给ToList,在你的IFA中使用skip,我正在与WPF合作。。。pageSize和PageIndex呢?但我明白了!谢谢别忘了点菜。如果您没有OrderBy,那么两个查询之间的顺序可能不同,您可以在第2页上看到第1页的项目。我仍然需要这些记录。。。但仍在努力提高性能。。。当我有一个新列表时,我需要另一个,我正在尝试使用Include()创建它。。因此,如果我有100条记录并首先显示它们(它运行得很快),我希望这100条记录能够获得所需的信息)@Songaila好的,不要像我写的那样在乞讨支票中打电话给ToList,在你的IFA中使用skip,我正在与WPF合作。。。pageSize和PageIndex呢?但我明白了!谢谢别忘了点菜。如果您没有OrderBy,那么两个查询之间的顺序可能不同,您可以在第2页上看到第1页的项目。