2013-02-20 2 views
1

Я использовал быстрый запрос Sitecore в своем коде C# для получения элементов и подпозиций, соответствующих критериям. Но быстрый запрос не возвращает никаких элементов, хотя есть.Быстрый запрос Sitecore не возвращает значения

Мой быстрый запрос, как показано ниже; fast:/sitecore/content/...//*[@__Workflow state='{item id}']

Это не вернет никаких предметов, но удаление fast: из запроса вернет товары, зайдя больше времени.

Я попытался экранировать пробелы в пути запроса, как показано ниже, но это не сработало; fast:/sitecore/content/...//*[@#__Workflow state#='{item id}']

Есть ли способ получить подпункты с фильтрацией, используя быстрый запрос?

+0

Будьте осторожны, используя быстрый запрос в своем интерфейсе. По моему опыту, быстрый запрос всегда попадает в базу данных, даже когда был создан кеш-файл. Я обнаружил, что замена быстрого запроса обычными запросами через дерево, такая как Sitecore.Context.Item.GetChildren(), была намного быстрее, потому что после выполнения запроса один раз, следующие его действия были против кеша Item, в то время как тот же запрос usimg fast всегда попадает в базу данных, независимо от кеша Item. – DougCouto

ответ

0

Я заметил, что вы используете точки пользователя в своем запросе, что неверно. Вы можете использовать 2 точки для извлечения родительского элемента, но в вашем запросе выбор родителя из /sitecore/content кажется немного странным.

Кажется, что вы можете сделать с этим запросом:

fast:/sitecore/content//*[@__Workflow state='{item id}'] 

Смотрите также this document для синтаксиса и примеров и ограничения использования фаст-запроса вместо нормального запроса

EDIT:

Sitecore Быстрый запрос не учитывает контекстный язык (результаты включают элементы с версиями, которые соответствуют запросу на любом языке). Я просто сделал быстрый тест в Центре разработчиков в Sitecore, и в моем случае он привел только элемент с состоянием рабочего процесса, установленным на английском языке, а не мой текущий язык. Это может быть что-то, что вы испытываете в своей ситуации.

+0

три точки были добавлены, чтобы скрыть мой фактический путь из этой темы. Я знаю точный элемент для начала запроса. –

+0

ах, лучше не делать этого в будущем, это дает тем, кто хочет ответить на ваш вопрос неправильной идеей. У быстрого запроса Sitecore есть некоторые ограничения в его использовании снова в стандартных запросах. Я уверен, что если разрешено состояние @__Workflow –

+0

Только что сделал редактирование. –

Смежные вопросы