[英]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.