使用LINQ基于AncestorOrSelf的doctype对Umbraco节点进行分组

时间:2014-07-01 15:14:21

标签: c# linq umbraco umbraco7

我尝试使用LINQ对我的Umbraco(v7)内容树中的所有节点进行分组,但有一个条件:如果某个节点有某个doctype,那么这个节点及其子节点将是组合在一起。

因此,在以下示例中,括号中的别名表示节点的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页有不同的文档类型,所以它们的孩子应该组合在一起,而Page 1的孩子不会被分组,因为它有(&#39) ; 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};

但是,这会导致错误消息"无效的表达式术语' group'" 。有没有解决方案和/或我的逻辑是完全错误的?

0 个答案:

没有答案