我有此代码..问题的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