我正在尝试使用跳过并使用 IGrouping,但我不想在分组键上分页,我想对已分组的项目执行此操作。
问问题
318 次
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 回答