Sitecore Fast Query дает исключение для разбора - PullRequest
16 голосов
/ 17 ноября 2010

Почему я получаю эту ошибку с кодом ниже ParseException: End of string expected at position 4.

Вот код: Ошибка в 3-й строке.

var db = Sitecore.Configuration.Factory.GetDatabase("web");
string query = @"fast:/sitecore/content/foodservice/home/Products/3492-5326/3518-7";
Item item = db.SelectSingleItem(query);
return item;

Можем ли мы использовать быстрый запрос с SelectSingleItem()? Я пытался избежать get folder contents and loop through each item until I find the target solution. Предложения?

Ответы [ 2 ]

17 голосов
/ 17 ноября 2010

При использовании Sitecore Query вам необходимо экранировать имена элементов с дефисами. От SDN :

Элементы с тире в именах («-») должны быть включены в символы «#». Пожалуйста, используйте такой синтаксис: / sitecore / content / Home / # About-us #. В противном случае вы можете получить следующую ошибку: Неверный источник поиска "/ sitecore / content / TestSiteB / Home / About-us": конец строки ожидается в позиции 38. Также, имя элемента должно быть включено в символы «#», если оно содержит «И» или «или» слово и используется перед символами «// ». Например: "/ sitecore / content / Home / # новости и события # // ".

UPDATE: Я подтвердил, что это относится и к быстрым запросам.

End of string expected at position 27. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: Sitecore.Data.Query.ParseException: End of string expected at position 27.

Source Error: 


Line 21:         protected void Page_Load(object sender, EventArgs e)
Line 22:         {
Line 23:             Sitecore.Context.Database.SelectSingleItem("fast:/sitecore/Content/Home/Test-Item");
Line 24: 
Line 25:             Model = Sitecore.Context.Item;

Тот же код отлично работает с #escapes #:

Sitecore.Context.Database.SelectSingleItem("fast:/sitecore/Content/Home/#Test-Item#");
7 голосов
/ 24 ноября 2010

Это ошибка при использовании Fast Query и SelectSingleItem ().Эта проблема исправлена ​​в выпуске Sitecore CMS 6.3.0 rev.100716.См. Примечания к выпуску .Поскольку мы используем 6.2, мне пришлось переписать свой метод, чтобы использовать запрос Sitecore вместо быстрого запроса.

...