是否有可能使用linq和take()从数据库表中获取100个记录,然后从数据库表中获取100个记录



首先使用代码,Oracle数据库如果有大量数据,我需要选择前100个回收但是我还需要有可能获得其余记录,因此如何从101开始下一个100个回收?

如果有可能使用linq take()?

进行操作。
List<int> myList = new List<int>();
List<int> newList = new List<int>();
myList = DBContext.MyTable.Where(x=>x.ID == someParam).Select(x=>x.ID).toList();
int recodCount = myList.Count();
if (recodCount > 1000)
{
    newList.AddRange(myList.Take(100));
}
else
{
    newList.AddRange(myList);
}

我想您需要分页,您需要定义PageIndex和Pagesize

myList = DBContext.MyTable
                  .Where(x=>x.ID == someParam)
                  .Skip((pageIndex - 1) * pageSize)
                  .Take(pageSize);

但是,如果您只想跳过100,那么您缺少的是Skip

就像蒂姆所说的那样,不要在乞讨中调用Tolist(),这将在内存中选择所有内容。也不要致电Count()检查if(count > 100)。您应该这样做:if(myList.Skip(number).Any())如果您的收藏的记录多于编号。

是正确的。

相关内容

  • 没有找到相关文章

最新更新