0

我正在尝试使用 ExecuteEntityQuery 方法检索组件列表(包括元数据)。

不幸的是,CustomMeta 属性永远不会被填充,因此我要遍历列表中的所有项目并检索每个项目的 CustomMeta - 严重的性能问题。

有没有一种方法可以检索组件列表的 CustomMeta 而无需为列表中的每个项目点击数据库?

提前致谢。

4

2 回答 2

1

正如文档中的这个页面所说ExecuteEntityQuery

返回与查询匹配的对象数组。如果executeQuery您需要直接访问项目的属性,请使用。

要减少数据库命中次数,还可以考虑使用 Tridion 的对象缓存。您可以将数量惊人的元数据放入常规大小的缓存中。

于 2012-09-03T11:32:41.067 回答
1

我的猜测是,为了提高效率,自定义元数据不会自动填充。另一种方法是使用内容交付 Web 服务 (OData)。这确实允许您在一个查询中获取一系列项目的所有 CustomMeta。

一个简单的示例,它为您提供所有组件,包括给定出版物中的自定义元数据:

http://mysite/odata.svc/Publications(30)/Components?$expand=CustomMeta
于 2012-09-03T12:01:48.510 回答