我有以下代码:
public List<anEntity> Get(int page,int pagesize,Func<anEntity,IComparable> orderby) { using (var ctx = new MyContext()) { return ctx.anEntity.OrderBy(orderby).Skip(pagesize * page).Take(pagesize).ToList(); } }
当我检查我的数据库配置文件(sqlServer 2012)时,我可以看到一个可怕的全表扫描,没有任何“TOP”子句.
有趣的部分:
如果我做类似的事情,但指定一个具体的顺序:
return ctx.anEntity.OrderBy(x => x.aField).Skip(pagesize * page).Take(pagesize).ToList();
我想避免有很多方法,一种是针对每个“orderby”的可能性.任何暗示都将非常感激.
解决方法
原文地址:https://www.jb51.cc/csharp/92542.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。