Entity framework 通过在EF中指定范围从ObjectSet获取对象

Entity framework 通过在EF中指定范围从ObjectSet获取对象,entity-framework,range,objectset,Entity Framework,Range,Objectset,我正在试用EF4.0。我有一个Employee对象,使用EF,我只需调用 Context.Employees 现在,上面的调用将抛出以下sql查询 从员工中选择* 上面的查询工作正常,我没有任何抱怨,但是您知道,如果表中有数百万条记录,那么这将不够性能,并且肯定会影响性能 因此,我试图找出一种方法,为我的对象集提供一个范围,在这个范围内,我可以说,从Employee对象集中获取30到60条记录 有没有办法做到这一点 如有任何建议,我们将不胜感激 更新: 我正试图这样做,以获得20名员工(页面大小

我正在试用EF4.0。我有一个Employee对象,使用EF,我只需调用

Context.Employees

现在,上面的调用将抛出以下sql查询
从员工中选择*

上面的查询工作正常,我没有任何抱怨,但是您知道,如果表中有数百万条记录,那么这将不够性能,并且肯定会影响性能

因此,我试图找出一种方法,为我的对象集提供一个范围,在这个范围内,我可以说,从Employee对象集中获取30到60条记录

有没有办法做到这一点

如有任何建议,我们将不胜感激

更新: 我正试图这样做,以获得20名员工(页面大小)回来的基础上的页面索引

提前谢谢。
尼克

好吧,我终于想出了一个方法,我认为这是相当不错的。这就是我所做的

我使用iQueryEnable中的Skip and Take方法根据页面索引跳过并获取对象

因此,我使用了以下代码:

var empList = context.Employees.OrderBy("it.CreatedDate").Skip(pageIndex * 20 - 20).Take(20);
这是一种方式

如果有人觉得这不是一个好的解决方案,你非常欢迎拿出其他的东西,我可以取代

更新代码 根据Yury Tarabanko的建议,我将代码更改如下:

var empList = context.Employees.OrderBy(x=>x.CreatedDate).Skip(pageIndex * 20 - 20).Take(20);
感谢那些花时间阅读我的问题的人

Thnq,
NiK…

顺便说一句,您可以使用
OrderBy(e=>e.CreatedDate)
来避免使用“神奇字符串”。