我在使用 linq 查询时遇到问题。我使用 proc 从数据库中获取大约 600000 条记录。对于每个输入,我都使用 LINQ 对其进行过滤。使用 LINQ 查询对其进行过滤后,数据行的顺序不会保持不变。以前有人遇到过这个问题吗?
谢谢,
我在使用 linq 查询时遇到问题。我使用 proc 从数据库中获取大约 600000 条记录。对于每个输入,我都使用 LINQ 对其进行过滤。使用 LINQ 查询对其进行过滤后,数据行的顺序不会保持不变。以前有人遇到过这个问题吗?
谢谢,
使用 LINQ 查询对其进行过滤后,数据行的顺序不会保持不变。
大多数 LINQ 运算符不保证顺序。如果您想要有保证的排序,您应该使用OrderBy
按适当的列专门对查询结果进行排序。
如果您没有指定订单并且您的数据库有多个处理器,那么就无法保证订单在调用之间保持一致。
如果您不订购数据,数据库引擎可以将请求发送到多个线程,并在每个线程处理结果时聚合结果。如果服务器可以同时处理线程,那么该顺序将是不确定的。
从好的方面来说,您知道您正在尽快获取数据。
编辑
Linq 的实现也是如此。如果未指定顺序,则框架可以自由地以枚举正确结果的任何方式执行语句。