簡體   English   中英

是否可以使用LinQ和Take()從數據庫表中提取100條記錄,然后再提取100條記錄

[英]Is there a possibility to take 100 records then other 100 record from database table using LinQ and Take()

使用Code First,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,則缺少的是SkipEnumerable.Skip方法

就像蒂姆說的那樣,不要在乞求中調用ToList(),這會選擇內存中的所有內容。 也不要調用Count()來檢查if(count > 100) 您應該使用: if(myList.Skip(number).Any())做到這一點,如果您的集合中的記錄多於number。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM