Linq Paging - 如何合并总记录数

时间:2010-03-31 13:14:46

标签: linq linq-to-entities

我试图弄清楚获取记录计数的最佳方法是合并分页。我需要这个值来计算给定页面大小和一些其他变量的总页数 这是我到目前为止使用skip和take语句获取起始行和页面大小。

promotionInfo = (from p in matches
orderby p.PROMOTION_NM descending
select p).Skip(startRow).Take(pageSize).ToList();

我知道我可以运行另一个查询,但想到可能有另一种方法可以实现此计数而无需运行查询两次。

提前致谢, 比利

1 个答案:

答案 0 :(得分:9)

  

我知道我可以运行另一个查询,但想到可能有另一种方法可以实现此计数而无需运行查询两次。

不,你必须运行查询。

您可以执行以下操作:

var source = from p in matches
             orderby p.PROMOTION_NM descending
             select p;
var count = source.Count();
var promotionInfo = source.Skip(startRow).Take(pageSize).ToList();

但请注意Skip(0) isn't free