【发布时间】:2016-10-24 02:32:20
【问题描述】:
当 orderBy 发生在具有相同值的 datetime 上时,我在从 linq 到 sql 的不同点击中得到不同的结果。
假设有 15 条记录与其字段之一具有相同的日期时间 如果这 15 条记录有分页,并且在我的情况下每页限制为 10,则说第 1 页的第一次运行有 10 条记录。那么对于第 2 页,我没有得到剩余的 5 条记录,但有 5 条记录来自第 1 页的前 10 条记录。
问题:
orderBy 和 skip 和 take 函数的工作原理以及
为什么会出现这种差异?
【问题讨论】:
-
这取决于 Linq 使用的查询机制的底层实现。 Linq 本身只是一个枚举扩展。您能否具体说明您的问题适用于哪个来源,例如MSSQL 或内存列表、OrderedLists 等?
-
你能发布你的代码吗?
-
它是 MSSQL @Wicher Visser
-
我无法发布我的代码,但如果 orderby 列具有相同的值@Baldrick,所有 get 查询都会发生这种情况
-
如果所有值都相同,则不保证排序。分页不能起作用,因为当再次执行相同的语句时,顺序很容易改变。因此,请确保您使用 另一个 tie-breaker 列进行排序
标签: c# sql-server entity-framework linq