我有一个Linq查询工作正常,但我注意到当我使用带有该查询的take关键字时,它不会返回相同的顶部选定记录。 当我看到Sql profiler查询它们完全相同时,除了顶级关键字之外,可能是什么问题。我注意到的另一件事是,当我在数据库中给出一个不大的记录时,它也能正常工作。
我附加查询并记录附件
当我在此查询中应用前10名时,它会显示此记录
使用Sql Server 2008 R2可能会出现什么问题。
答案 0 :(得分:7)
使用TOP
关键字而不进行排序并不能保证结果集的可重复性。
来自here
如果包含TOP的SELECT语句也具有ORDER BY子句, 从有序结果集中选择要返回的行。该 整个结果集按指定顺序构建,前n行构建 返回有序的结果集。
答案 1 :(得分:3)
尝试使用ORDER BY
(或linq中的orderby
强制查询订购记录。
答案 2 :(得分:3)
默认排序可能不同,请尝试按列显式排序。