我有此代碼..問題的LINQ跳過採取
var documents = from d in db.Documents select d;
documents = documents.OrderBy(d => d.Created);
documents = documents.Skip(20).Take(10);
在DB I具有25頁的文檔(IDS從1到25)。當我運行這段代碼我從19號文件到24
如果我把它寫這樣
documents = documents.Skip(20);
或類似這樣的
documents = documents.Skip(20).ToList().Take(10).AsQueryable();
我從ID 20到25的文件。 。
我在這裏失蹤?
當您談論「文檔19至24」時,您是使用基於0的索引還是基於1的索引?你能展示一個[mcve]嗎? (另外,你的代碼很難理解,我會使用'var actualPage = page ?? 1; var actualPageSize = pageSize ?? 10; var skip =(actualPage - 1)* actualPageSize; documents = documents .Skip(skip).Take(actualPageSize);'...並且可能驗證你沒有得到負面的輸入,我也使用返回值而不是接受'文檔'的參考... –
在這個點,它看起來像是一個破碎的提供者 - 或者數據不是你認爲的那樣。你看看生成的SQL嗎?(請注意,你不是通過Id命令,它可能會解釋它...) –
什麼是跳過?在「如果我這樣寫」部分 – Thorarins