扩展特定的GroupBy和分页

时间:2014-12-15 13:27:23

标签: c# linq

我有一个LINQ查询,它通过动态属性过滤和排序记录列表(来自数据库),并根据当前分页设置跳过/获取适当数量的记录。

一切正常。现在我想对记录进行分组(再次通过动态密钥),并且能够逐个扩展组(在用户选择上)。另外,我需要这个与分页一起工作。

例如,我有一个说100个记录new { Name = ..., Category = ..., Prop1 = ..., Prop2 = ..., }的列表,这些记录已经过滤和排序(来自任何记录的总集)。假设我们有10个不同的类别(范围从1到10),当前的分页设置为从0开始的10个项目。

现在我希望这些记录按其Category分组,然后说明Category == 5(与此3匹配的项目)和Category == 8(与此10匹配的项目)展开的群组,其余的已折叠

应该返回什么

Group {Category == 1)
Group {Category == 2)
Group {Category == 3)
Group {Category == 4)
Group {Category == 5)
    {
        { Name, Category, Prop1, Prop2, ... }
        { Name, Category, Prop1, Prop2, ... }
        { Name, Category, Prop1, Prop2, ... }
    }
Group {Category == 6)
Group {Category == 7)
Group {Category == 8)
    {
        { Name, Category, Prop1, Prop2, ... }
    }

因此返回的条目数量为'折叠类别每个计数为1个条目,并且它们所持有的项目的扩展类别计数。最后一个扩展类别被削减了'因为这些项目将超过所请求的总条目数量(10)。

理想情况下,这一切都基于IQueryable,因此只会从数据库中提取所请求的项目。

我确实调查了GroupByGroupJoin,但我不确定如何按请求的记录数限制这些分组中的项目。

0 个答案:

没有答案