【发布时间】:2014-05-23 06:57:09
【问题描述】:
我只是好奇 Skip 和 Take 函数在 Entity Framework 中是如何工作的(使用 EF 6.1)。
如果我这样做:
db.Events.OrderByDescending(x => x.Date).Take(maxPageSize).ToList();
我得到了一些列表(注意到一个事件完全消失了)。
如果我这样做:
db.Events.OrderByDescending(x => x.Date).Skip(0).Take(maxPageSize).ToList();
我得到另一个列表,之前查询中的消失事件出现在这里。
任何人都知道为什么我必须Skip() ZERO 实体才能Take() 我应该采取什么?这几乎没有意义(至少对我来说)......
附:我无法使用 SQL Server Profiler 检查生成了哪些查询。
【问题讨论】:
-
没有一个有效的例子,很难看出这种说法的可信度。
Skip(0)不应该做任何事情 -
提示:将函数附加到
DbContext.Database.Log(Action<string>) 以查看生成的SQL。 -
@Sayse,我不是真正的巨魔或骗子。如果我没有亲眼看到,我不会问这个问题。我也认为
Skip(0)应该什么都不做。 + 我看到了您认为重复的问题,但这根本不能回答我的问题。 -
@YOhan - 我没有说你是我只是说这听起来很难相信,这就是我去搜索信息的原因.. 相关专栏右侧还有其他链接可能感兴趣。我提出的重复的那个似乎和你有完全相同的问题
标签: c# entity-framework entity-framework-6