我正在尝试使用 ExecuteEntityQuery 方法检索组件列表(包括元数据)。
不幸的是,CustomMeta 属性永远不会被填充,因此我要遍历列表中的所有项目并检索每个项目的 CustomMeta - 严重的性能问题。
有没有一种方法可以检索组件列表的 CustomMeta 而无需为列表中的每个项目点击数据库?
提前致谢。
我正在尝试使用 ExecuteEntityQuery 方法检索组件列表(包括元数据)。
不幸的是,CustomMeta 属性永远不会被填充,因此我要遍历列表中的所有项目并检索每个项目的 CustomMeta - 严重的性能问题。
有没有一种方法可以检索组件列表的 CustomMeta 而无需为列表中的每个项目点击数据库?
提前致谢。
正如文档中的这个页面所说ExecuteEntityQuery
:
返回与查询匹配的对象数组。如果
executeQuery
您需要直接访问项目的属性,请使用。
要减少数据库命中次数,还可以考虑使用 Tridion 的对象缓存。您可以将数量惊人的元数据放入常规大小的缓存中。
我的猜测是,为了提高效率,自定义元数据不会自动填充。另一种方法是使用内容交付 Web 服务 (OData)。这确实允许您在一个查询中获取一系列项目的所有 CustomMeta。
一个简单的示例,它为您提供所有组件,包括给定出版物中的自定义元数据:
http://mysite/odata.svc/Publications(30)/Components?$expand=CustomMeta