就一个IQueryable<T>对象,有没有办法知道它有没有OrderBy过?……
就一个IQueryable<T>对象,有没有办法知道它有没有OrderBy过?……
比如:
///分页
publi IQueryable<T> GetPage<T>(IQueryable<T> list, int pagesize, int page){
if(还没排过序呢){
//获取主键
list = list.ordery(r=>r.主键);
}
list = list.skip( (page - 1) * pagesize ).take(pagesize);
}
“还没排过序”,这个有什么办法知道吗?
我现在的笨办法是先让他skip,如果抛出错误,我就去排序。但是这样执行效率就慢了好像
------解决方案--------------------什么样的排序叫做“已经排序”?一个分页代码根本没有排序的职责,排序是调用它的客户程序的职责。设计程序时,如果职责乱了、分不清楚哪些代码应该属于哪一个文件、代码块里提交实现,你的程序就会呈指数速度快速变乱。
------解决方案--------------------楼主解决了吗?我也正为此问题所困扰
------解决方案--------------------EntityFramework中 不经过排序,是不能执行Skip 和Take的。。随便按照时间或者ID排下序呗