日期:2014-05-18  浏览次数:21434 次

LINQ to Entities中数据分页时,必须要OrderBy吗??
LINQ to Entities中数据分页时,出现如下提示:
LINQ to Entities 中已排序的输入支持方法“Skip”。必须在调用“Skip”方法之前调用方法“OrderBy”。 
难道必须要OrderBy吗??
有时我是按照数据库中默认查询出来的数据顺序来分页的,不需要排序。

------解决方案--------------------
加上一个ToList()

或者

db.Where(x => ...)
.Select((x, i) => new { x, i }).OrderBy(x => x.i).Select(x => x.x).Skip(xxx).Take(xxx);
------解决方案--------------------
必须的,自己写分页语句的时候,不也要先排序吗。
------解决方案--------------------
先调用Skip take 然后在 ToList 这样不是在内存中分页的 

可以看下SQL检控~
------解决方案--------------------
如果不是相同的排序规则,那么每次取的数据也有可能会重复
所以skip take 取数据前必要要按照相同的排序规则先排好序