避免在实体框架中对结果进行动态排序
本文关键字:结果 动态 排序 实体 框架 | 更新日期: 2023-09-27 18:34:52
我正在使用带有一些 where 条件的实体框架从数据库中从数据库中获取用户表中的记录。 当我在 Sql Server 2008 R2 中执行查询时,结果的显示顺序与实体框架生成的结果不同。默认情况下,实体框架根据主键对结果进行排序。但我不想要任何订购。我想要记录,因为它们出现在 Sql 服务器 R2 中。
也许您可以删除 EF 应用的顺序(如果有(,但您的请求"我希望行的顺序与它们在 SQL Server 上的显示顺序相同"(我将其读作"我从 SSMS 运行查询时看到的相同顺序"(无法满足。
在SQL(以及SQL服务器(中,行没有顺序,当您进行查询时,RDBMS根据不受您控制的各种因素决定输出的顺序:当前负载,CPU,RAM,行数,索引,许多其他。
这意味着您不能期望任何排序,甚至不能期望您在 SSMS 上看到的相同"无序订单"。
连续两次执行相同的查询可能会生成两个行相同但顺序不同的结果集,这是正确的,也是预期的。
使用不同的工具执行相同的查询也可能生成具有不同顺序的集合。
这是一篇旧的(但仍然有效(的文章,其中包含几个示例和测试,表明如果不指定 order by
子句,则无法对结果集的顺序有任何期望。