0

我正在尝试使用 LINQ 对我的 Umbraco (v7) 内容树中的所有节点进行分组,但有一个条件:如果节点具有特定的文档类型,则该节点及其子节点将被分组在一起。

因此,在以下示例中,括号中的别名表示节点的 doctype 别名:

Page 1 ('Page')
    Child 1 ('Page')
Page 2 ('Page')
Page 3 ('Page')
Page 4 ('Article')
    Child 2 ('Text')
    Child 3 ('Text')
    Child 4 ('Text')

第 4 页与第 1 页具有不同的文档类型,因此第 4 页及其子项应组合在一起,而第 1 页的子项未分组,因为它具有 ('Page') doctype。所有节点的计数应为“8”,过滤的节点计数应为“5”。

我对此查询的第一次尝试是执行以下操作:

var results = from x in nodes
              (x.DocumentTypeAlias == "Article" ? 
                  group x by x.AncestorOrSelf().Id into z : 
                  group x by x into z)
              select new{Id = z.Key};

但是,这会导致错误消息"Invalid expression term 'group'"。有没有解决方案和/或我的逻辑完全错误?

4

0 回答 0