Linq Paging - 如何合并总记录数

Bil*_*gan 5 linq linq-to-entities

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

promotionInfo = (from p in matches
orderby p.PROMOTION_NM descending
select p).Skip(startRow).Take(pageSize).ToList();
Run Code Online (Sandbox Code Playgroud)

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

先谢谢,比利

Cra*_*ntz 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();
Run Code Online (Sandbox Code Playgroud)

但是,请注意,这Skip(0)不是免费的.