9

我试图了解 OrganizationalItemItemsFilterData 过滤器中 BasedOnSchemas 选项的用途。

文档清楚地指出:“获取或设置 BasedOnSchemas 条件以仅返回使用给定模式的项目”所以应该可以只检索特定模式的组件,对吧?

这是我的代码:

LinkToSchemaData[] schemaLinks = new[] { 
        new LinkToSchemaData { IdRef = "tcm:113-362325-8" } 
    };

OrganizationalItemItemsFilterData filter = 
    new OrganizationalItemItemsFilterData();

filter.BaseColumns = ListBaseColumns.Extended;
filter.ItemTypes = new ItemType[] { ItemType.Component };
filter.Recursive = true;
filter.BasedOnSchemas = schemaLinks;

XElement items = client.GetListXml("tcm:113-14192-2", filter);

然而, XElementitems将包含多种类型的组件,而不仅仅是模式 tcm:113-362325-8 的组件

如何仅检索基于我的架构的那些组件?

4

1 回答 1

11

不支持同时使用BasedOnSchemas和。Recursive = true去掉递归,你会发现模式过滤器起作用了。

如果您想获得某个 Schema 的所有组件的“递归”列表,请考虑在 Schema 上执行 WhereUsed。

GetListXml("tcm:5-59-8", new UsingItemsFilterData())
于 2012-08-28T08:18:57.537 回答