使用glass mapper映射Sitecore

时间:2018-04-20 17:02:21

标签: model sitecore glass-mapper

有没有人用过GlassMapper来映射Sitecore中的复杂字段类型? Glass似乎适用于字符串字段,但Sitecore中的Droplinks,Droplists或其他类型不会映射到模型中。 DropLink没有字段类型。有一个LookupField,但它不适用于droplinks或droplists。

1 个答案:

答案 0 :(得分:0)

在您的用例中,在GlassMapper中实现此功能实际上非常简单。

droplist只会存储已选择项目的名称 - 因此最好将其映射到字符串。

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; }
}

您可以对其他复杂字段类型使用类似的策略。例如,任何类型的多列表字段,例如Treelist可以用IEnumerable<MyLinkedItem>表示。