Tridion ExecuteEntityQuery和CustomMeta

Tridion ExecuteEntityQuery和CustomMeta,tridion,tridion-2011,tridion-content-delivery,Tridion,Tridion 2011,Tridion Content Delivery,我正在尝试使用ExecuteEntityQuery方法检索组件列表(包括元数据) 不幸的是,CustomMeta属性从未被填充,因此我必须迭代列表中的所有项,并为每个项检索CustomMeta—严重的性能问题 是否有一种方法可以检索组件列表的CustomMeta,而不必为列表中的每个项目点击db 提前感谢。正如ExecuteEntityQuery所说: 返回与查询匹配的对象数组。如果需要直接访问项目的属性,请使用executeQuery 为了减少数据库命中的数量,还考虑使用Trdion的对象缓存

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

不幸的是,CustomMeta属性从未被填充,因此我必须迭代列表中的所有项,并为每个项检索CustomMeta—严重的性能问题

是否有一种方法可以检索组件列表的CustomMeta,而不必为列表中的每个项目点击db

提前感谢。

正如
ExecuteEntityQuery
所说:

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


<>为了减少数据库命中的数量,还考虑使用Trdion的对象缓存。您可以将数量惊人的大量元数据放入规则大小的缓存中。

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

下面是一个简单的示例,其中提供了给定发布中的所有组件,包括自定义元数据:

http://mysite/odata.svc/Publications(30)/Components?$expand=CustomMeta

我没有想过使用odata服务。我相信这项服务本身也存在一些性能问题,但我会看一看。谢谢。@dylman79我会试一试的。Web API不一定比java/.net API慢。我在文档中注意到了这一点,但它不允许您“直接访问对象属性”,因为它只返回每个项目id,从那里您需要查询循环中的每个项目元。我将检查您是否使用了对象缓存,如果没有,我会感到惊讶。谢谢