如何在IQueryable <t>结果中获取上一条记录和下一条记录?</t>

时间:2013-03-29 15:46:24

标签: c# entity-framework

我对IQueryable集合进行了一些排序并获取了一个项目。我的页面上还有一些<a>链接,我想点击这些链接以收集到该集合的上一个和下一个项目。

由于ID是 NOT 顺序,我不能只做简单的算术来达到它们。

如果给出记录的位置,如何从IQueryable获取上一个和下一个项目?

2 个答案:

答案 0 :(得分:4)

使用Take()Skip()来实现您的分页系统。您不需要ID是顺序的,您只需按查询返回的顺序返回对象。

var itemsPerPage = 10;
var pageNumber = 2; // Say it starts from 1

var values = query.Skip((pageNumber - 1) * itemsPerPage).Take(itemsPerPage);

答案 1 :(得分:0)

您可以使用LinkedList

LinkedList Nodes支持调用他们的上一个和下一个兄弟节点。 LinkedList的构造函数采用IEnumerable,因此您应该能够轻松实现它。