[英]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,則缺少的是Skip
: Enumerable.Skip方法 。
就像蒂姆說的那樣,不要在乞求中調用ToList(),這會選擇內存中的所有內容。 也不要調用Count()
來檢查if(count > 100)
。 您應該使用: if(myList.Skip(number).Any())
做到這一點,如果您的集合中的記錄多於number。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.