1

我在使用 linq 查询时遇到问题。我使用 proc 从数据库中获取大约 600000 条记录。对于每个输入,我都使用 LINQ 对其进行过滤。使用 LINQ 查询对其进行过滤后,数据行的顺序不会保持不变。以前有人遇到过这个问题吗?

谢谢,

4

2 回答 2

2

使用 LINQ 查询对其进行过滤后,数据行的顺序不会保持不变。

大多数 LINQ 运算符不保证顺序。如果您想要有保证的排序,您应该使用OrderBy按适当的列专门对查询结果进行排序。

于 2012-05-17T16:19:39.487 回答
0

如果您没有指定订单并且您的数据库有多个处理器,那么就无法保证订单在调用之间保持一致。

如果您不订购数据,数据库引擎可以将请求发送到多个线程,并在每个线程处理结果时聚合结果。如果服务器可以同时处理线程,那么该顺序将是不确定的。

从好的方面来说,您知道您正在尽快获取数据。

编辑

Linq 的实现也是如此。如果未指定顺序,则框架可以自由地以枚举正确结果的任何方式执行语句。

于 2012-05-17T16:15:33.680 回答