我已经使用 skip and take 实现了一个分页例程。它工作得很好,但在调用 Take 和 Skip 之前我需要表中的记录总数。
我知道我可以提交 2 个单独的查询。
- 计数
- 跳过并采取
但我不想对 LINQ 发出 2 次调用。
如何在同一个查询中返回它(例如使用嵌套的选择语句)?
以前,我在存储过程中使用了分页技术。我使用临时表返回项目,并将计数传递给输出参数。
最佳答案
对不起,你不能。至少,不是以一种漂亮的方式。
你可以用一种不漂亮的方式来做,但我认为你不喜欢那样:
var query = from e in db.Entities where etc etc etc;
var pagedQuery =
from e in query.Skip(pageSize * pageNumber).Take(pageSize)
select new
{
Count = query.Count(),
Entity = e
};
你看到了吗?一点都不漂亮。
关于c# - LINQ:分页技术,使用 take 和 skip 但还需要总记录 - 如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275935/