我正在尝试使用跳过并接受IGrouping,但我不想在已分组的项目上对分组键进行分页。
答案 0 :(得分: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;