0

我正在尝试使用跳过并使用 IGrouping,但我不想在分组键上分页,我想对已分组的项目执行此操作。

4

1 回答 1

0

您可以在对它们进行分组之前对其进行分页。


在内存中分页这些东西非常容易:

var page =
 (
  from g in groups
  from item in g
  select item
 ).Skip(100).Take(20);

它不能很好地转换为 sql - 这就是为什么没有人回答的原因。问题是,当您询问组的元素时,linq To Sql 按组键重新查询数据库以获取这些元素。这就是为什么最好在不分组的情况下进行排序和分页。

您可以使用三元运算符实现条件排序:

var query = 
from c in Customers
order c by
  c.Name.StartsWith("B") ? 1 :
  c.Orders.Any() ? 2 :
  3,
  c.Name
select c;
于 2010-10-04T15:07:48.163 回答