ExecuteEntityQuery и CustomMeta

Я пытаюсь получить список компонентов (включая метаданные), используя метод ExecuteEntityQuery.

К сожалению, свойство CustomMeta никогда не заполняется, и поэтому у меня есть перебор всех элементов в списке и получение CustomMeta для каждого - серьезная проблема с производительностью.

Есть ли способ, как я могу получить CustomMeta для списка компонентов, не нажимая на БД для каждого элемента в списке?

Заранее спасибо.

2 ответа

Я предполагаю, что пользовательская мета не заполняется автоматически ради эффективности. Альтернативой является использование веб-службы доставки контента (OData). Это позволяет вам получить все CustomMeta диапазона элементов в одном запросе.

Простой пример, который дает вам все компоненты, включая пользовательские метаданные в данной публикации:

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

Как говорится на этой странице в документации ExecuteEntityQuery:

Возвращает массив объектов, соответствующих запросу. использование executeQuery если вам нужен прямой доступ к свойствам предметов.

Чтобы уменьшить количество обращений к базе данных, также подумайте об использовании кэша объектов Tridion. Вы можете поместить удивительно большое количество метаданных в кэш регулярного размера.

Другие вопросы по тегам