Свойство setcore Droplink не работает

1

Я создал Модели Glassmapper для всех предметов, у меня есть дроплинк в одном из элементов Sitecore. Ниже приведена модель для элемента с полем отвода.

    [SitecoreClass]
   public class Field:BaseItem
    {
        [SitecoreField("Mapper Item")]
        public virtual LinkedItem MapperItem { get; set; }                
    }

Поле "Mapper Item" - это поле droplink в sitecore, класс BaseItem имеет все базовые свойства sitecore:

        [SitecoreId]
    public virtual Guid Id { get; set; }

    [SitecoreInfo(SitecoreInfoType.Name)]
    public virtual string Name { get; set; }

    [SitecoreInfo(SitecoreInfoType.DisplayName)]
    public virtual string DisplayName { get; set; }

    [SitecoreInfo(SitecoreInfoType.Url)]
    public virtual string Url { get; set; }

    [SitecoreInfo(SitecoreInfoType.Path)]
    public virtual string Path { get; set; }

    [SitecoreInfo(SitecoreInfoType.ContentPath)]
    public virtual string ContentPath { get; set; }

    [SitecoreInfo(SitecoreInfoType.TemplateId)]
    public virtual Guid TemplateId { get; set; }

    [SitecoreInfo(SitecoreInfoType.TemplateName)]
    public virtual string TemplatedName { get; set; }

    [SitecoreField("__created")]
    public virtual DateTime Created { get; set; }

    [SitecoreField("__updated")]
    public virtual DateTime Updated { get; set; }

и LinkedItem обладает следующими свойствами:

[SitecoreClass]
public class LinkedItem:BaseItem
{
    [SitecoreField("Field ID")]
    public virtual string FieldID { get; set; }
    [SitecoreField("Display Name")]
    public virtual string DisplayName { get; set; }
    [SitecoreField("Field Type")]
    public virtual string FieldType { get; set; }
}

Я получаю LinkedItem объекта в MapperItem собственности, когда я доступ к Field объекту, но если я пытаюсь установить MapperItem свойство его не сохранить его в соответствующем поле (поле "Mapper Item"), но я не получаю ошибку,

Я использую следующий код для установки дроплинка

fieldItem.MapperItem = ItemUtility.GetItem<LinkedItem>(new Guid("some valid guid available in the droplist source"));
  • 0
    Пожалуйста, смотрите "Должны ли вопросы включать" теги "в заголовки?" где консенсус "нет, они не должны"!
  • 1
    Вы следуете инструкциям здесь glass.lu/Mapper/Sc/Tutorials/Tutorial11 ? Также вам нужно установить атрибут "SitecoreType" в вашем классе LinkedItem, что-то вроде [SitecoreType (TemplateId = "GUID HERE", AutoMap = true)]
Показать ещё 4 комментария
Теги:
sitecore
glass-mapper
sitecore6

1 ответ

1
Лучший ответ

Похоже, вы на старой версии Glass Mapper? Попробуйте добавить ссылку на шаблон так:

[SitecoreClass(TemplateId = "{5281CBCF-1A2D-413A-B182-2854FC6B9176}")]

В новейшей версии он должен быть установлен следующим образом:

  • Пространство имен должно быть: using Glass.Mapper.Sc.Configuration.Attributes;

  • Классы должны иметь атрибут: [SitecoreType (AutoMap = true)]

Эта ссылка содержит хороший снимок экрана правильной импликации для вышеупомянутого: http://www.glass.lu/en/Mapper/Sc/Tutorials/Tutorial11.aspx

Что нужно проверить:

  • Установлен ли правильный пакет nuget/вы можете установить последнюю версию: http://www.glass.lu/en/Mapper/Sc/Tutorials/Tutorial1.aspx

  • Уникально ли имя поля "Элемент карты"? Если не Sitecore/Glass выберет первый найденный не всегда правильный.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню