在使用 EF / LINQ to 实体实现分页时,我熟悉使用Skip()
并Take()
决定要显示哪个分页部分。我也熟悉Count()
在调用之前使用Skip()
或Take()
获取被分页的(非分页)结果的总数。
我的问题是,这是否总是必须最终以 2 个单独的查询被发送到数据库?我认为是的,因为我们需要先调用 Count() 来获取总数 ( SELECT COUNT(*) FROM...
),然后使用 Skip/Take 扩展表达式树,然后再次调用以获取实际数据 ( SELECT * FROM...
)。
我隐约记得读过 SQL 2k8 中的一个技巧,该技巧使总行计数变得更容易,但我怀疑 EF / LINQ to Entities 是否支持此提供程序功能。只是问这个问题,看看是否有人知道如何将这些整合到一个数据库中。