[英]problems with Linq skip take
我有這個代碼。
var documents = from d in db.Documents select d;
documents = documents.OrderBy(d => d.Created);
documents = documents.Skip(20).Take(10);
在數據庫中,我有25個文檔(標識從1到25)。 當我運行此代碼時,我會得到ID為19到24的文檔。
如果我這樣寫
documents = documents.Skip(20);
或像這樣
documents = documents.Skip(20).ToList().Take(10).AsQueryable();
我收到的文件從20到25。
我在這里想念什么?
您的數據不是您的想法。 問題是id=25
的created
日期不正確。
您要先按created
順序對序列進行排序,那么為什么還要期望對輸出按id
進行排序(或基於其進行選擇)?
首先執行“ Skip
,然后第二次“ OrderBy
更改輸出,因為它最初可能是由Id
排序的,然后您選擇了序列中的最后幾個,然后再次按日期對其進行了排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.