Sitecore Glass Mapper получает всех братьев и сестер

#sitecore #glass-mapper

#sitecore #glass-mapper

Вопрос:

Я пытаюсь получить все элементы на текущем уровне элемента. Я использую Glass Mapper SitecoreQuery для того же. Я могу получить текущий элемент, но не могу сопоставить всех братьев и сестер

 public class TestModel:BaseModel
{
    [SitecoreQuery("../*")]
    public virtual IEnumerable<Model1> Siblings { get; set; }
}

[SitecoreType(AutoMap = true)]
public class Model1 : BaseModel
{

}
  

Базовая модель имеет все необходимые поля и правильно сопоставлена. Я на самом деле пытаюсь отобразить все элементы на уровне текущего элемента.

Комментарии:

1. Попробуйте добавить второй параметр в SitecoreQuery : IsRelative = true вот так: [SitecoreQuery("../*", IsRelative = true)]

2. Вы пытаетесь получить все элементы одного уровня или только братьев и сестер (т. Е. Исключая текущий элемент)?

3. IsRelative в конце важен, он сообщает Glass. Mapper для выполнения запроса относительно элемента, который представляет класс. Также вы должны добавить [SitecoreType(AutoMap = true)] выше своего класса TestModel.

4. Спасибо. «IsRelative = true» сработало для меня.

5. @Deb Я рад, что это помогло. Комментарий преобразован в ответ.

Ответ №1:

Добавьте второй параметр в SitecoreQuery : IsRelative = true вот так:

 [SitecoreQuery("../*", IsRelative = true)]
public virtual IEnumerable<Model1> Siblings { get; set; }
  

Он сообщает Sitecore запускать запрос на уровне вашего элемента, а не начинать с корня дерева.

Вы можете найти более подробную информацию в официальном руководстве Sitecore Glass Mapper