【发布时间】:2010-10-22 01:52:50
【问题描述】:
使用 LINQ to SQL 获得分页结果的最佳模式是什么?
我有以下场景:
假设我想通过 description 搜索 items 表。我可以轻松做到:
public IQueryable<Item> FindItemsByDescription(string description)
{
return from item in _dc.Items
where item.Description.Contains(description);
}
现在,对该结果集进行分页的最佳方法是什么?
- 我是否应该在执行此操作之前执行 count 查询以找出结果集大小,然后根据我的需要限制此查询?我觉得这是要走的路。
- 我是否应该执行完整的查询,从数组大小中获取计数并只返回该数组的分页子集?如果结果集足够大,我觉得这将浪费大量时间......或者 LINQ to SQL 在这里做了什么魔术?
是否有用于执行此操作的 LINQ to SQL 通用模式?
编辑:我必须澄清一件小事。我知道 Take 和 Skip 方法。但是,在使用 Take 和 Skip 之前,我应该如何获得查询将检索到的结果的total count?
【问题讨论】:
标签: c# linq linq-to-sql pagination