Linq没有按正确的顺序提供数据

时间:2012-05-17 16:12:40

标签: linq

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

谢谢,

2 个答案:

答案 0 :(得分:2)

  

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

大多数LINQ运营商不保证订购。如果您想要保证订购,您应该使用OrderBy专门按相应的列排序查询结果。

答案 1 :(得分:0)

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

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

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

修改

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