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

NiK*_*NiK 5 entity-framework range objectset

我正在尝试EF 4.0.我有一个Employee对象并使用EF我只是通过调用获取Employee ObjectSet

Context.Employees

现在上面的调用将在sql查询后吐出 select * from Employees

上面的查询工作正常,我没有任何抱怨,但是你知道如果你在表中有数百万条记录就不会有足够的性能,它肯定会影响性能.

那么我试图想出一种方法来给我的ObjectSet一个范围,我可以说一些东西,比如从Employee ObjectSet中获取30到60个记录.

有没有办法做这样的事情.

任何建议都将深表感谢.

更新: 我正在尝试这样做,以便根据页面索引返回20个Employees(页面大小).

提前致谢.NIK ...

NiK*_*NiK 4

好吧,我终于找到了一种我认为相当不错的方法。这就是我所做的。

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

所以我使用了以下代码:

var empList = context.Employees.OrderBy("it.CreatedDate").Skip(pageIndex * 20 - 20).Take(20);
Run Code Online (Sandbox Code Playgroud)

这是一种方法。

如果有人觉得这不是一个好的解决方案,非常欢迎您想出其他我可以替换的东西。

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

var empList = context.Employees.OrderBy(x=>x.CreatedDate).Skip(pageIndex * 20 - 20).Take(20);
Run Code Online (Sandbox Code Playgroud)

感谢那些花时间阅读我的问题的人。

Thnq,尼克...