Glass Mapper IEnumerable‹Guid› в IEnumerable‹Object›

Я использую Glass Mapper и шаблоны генерации кода TDS для создания моделей для моих шаблонов sitecore.

Все работает Хорошо. Но, если у меня есть поле с несколькими списками, шаблоны TDS создают IEnumerable<Guid>. Я хочу, чтобы это было IEnumerable<OtherSitecoreTemplate>. Это работает, если я вручную изменю его. Но в следующий раз, когда код будет перегенерирован, все мои изменения будут потеряны.

Есть лучший способ это сделать?


person Dheeraj Palagiri    schedule 30.03.2015    source источник


Ответы (1)


Вы можете установить пользовательский тип в поле с несколькими списками, которое будет использоваться во время генерации кода, установив свойство «Пользовательские данные» поля в TDS:

Пользовательские данные.

В вашем случае, если вы установите для этого параметра значение «generic=Namespace.OtherSitecoreTemplate», стандартные шаблоны генерации кода для TDS будут генерироваться как IEnumerable<OtherSitecoreTemplate>

Кроме того, здесь вы должны установить тип для полей ссылок. Если вы используете строку «type=OtherSitecoreTemplate», она будет строго указывать поле в соответствии с предоставленным значением.

person Derek Dysart    schedule 30.03.2015
comment
Похоже, это не дало никакого эффекта.. все равно конвертируется в ‹Guid›? это имя/идентификатор шаблона Sitecore или сгенерированное имя класса/имя интерфейса? - person Dheeraj Palagiri; 30.03.2015
comment
Вам нужно установить это в поле в TDS. Это должно быть полное имя (включая пространство имен) класса, созданного для другого вашего шаблона. - person Derek Dysart; 30.03.2015
comment
Он меняет его для base_template, но не для шаблонов, унаследованных от base_template. пример: он изменяется в шаблоне нижнего колонтитула, но не в других шаблонах, унаследованных от шаблона нижнего колонтитула? - person Dheeraj Palagiri; 30.03.2015
comment
Если вы удалили шаблон из TDS, он также, вероятно, уничтожил ваше пользовательское поле данных. - person Derek Dysart; 31.03.2015