【发布时间】:2018-04-20 17:02:21
【问题描述】:
有没有人使用 GlassMapper 在 Sitecore 中映射复杂的字段类型? Glass 似乎可以很好地处理字符串字段,但 Sitecore 中的 Droplinks、Droplists 或其他类型不会映射到模型中。 DropLink 没有字段类型。有一个 LookupField,但它不适用于下拉链接或下拉列表。
【问题讨论】:
标签: model sitecore glass-mapper
有没有人使用 GlassMapper 在 Sitecore 中映射复杂的字段类型? Glass 似乎可以很好地处理字符串字段,但 Sitecore 中的 Droplinks、Droplists 或其他类型不会映射到模型中。 DropLink 没有字段类型。有一个 LookupField,但它不适用于下拉链接或下拉列表。
【问题讨论】:
标签: model sitecore glass-mapper
在您的用例中,在 GlassMapper 中实现这一点实际上非常简单。
下拉列表将仅存储已选择项目的名称 - 因此最好将其映射到字符串。
Droplink 存储被链接项目的 ID。您可以使用您已经创建的类型来表示链接的项目,Glass 足够聪明,可以通过 ID 在 Sitecore 中找到该项目,然后将其转换为您现有的任何类型。如果在 droplink 中没有选择任何项目,它将返回 null。
举例说明:
[SitecoreType(TemplateId = "{149FA0C9-1111-1111-1111-FD9194EAC887}", AutoMap = true)]
public class MyLinkingItem
{
public Guid Id { get; set; }
//Should be the Name of your Droplink field
public MyLinkedItem LinkedItem { get; set; }
}
[SitecoreType(TemplateId = "{149FA0C9-2222-2222-2222-FD9194EAC887}", AutoMap = true)]
public class MyLinkedItem
{
public Guid Id { get; set; }
}
您可以对其他复杂的字段类型使用类似的策略。例如,任何类型的 Multilist 字段,例如树列表可以用IEnumerable<MyLinkedItem> 表示。
【讨论】: