2010-03-31 65 views
4

我想弄清楚获取记录数的最佳方法是否合并分页。我需要这个值来计算页面大小和其他一些变量的总页数。
这是我迄今为止所采用的使用skip和take语句的起始行和页面大小。Linq Paging - 如何合并总记录数

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

我知道我可以运行另一个查询,但考虑可能不必运行两次查询达到这个数的另一种方式。

由于提前, 比利

回答

8

我知道我可以运行另一个查询,但考虑可能不必运行两次查询达到这个数的另一种方式。

不,您必须运行查询。

你可以这样做:但是

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

+0

这正是我所知道的,这是两个命中。 跳过(0)不是免费的你的意思是资源密集?如果startRow为0,应该删除它? – 2010-03-31 13:32:27

+0

yews,只是摆脱它然后。点击链接获取更多信息。 – 2010-03-31 13:56:26

+0

您是否知道Skip(0)的“费用”是否已在EF 4中退还? – 2011-05-03 03:50:01