Sitecore,由TDS创建的错误类型的继承模板字段

时间:2016-12-20 12:01:34

标签: c# sitecore sitecore7.2 glass-mapper tds

我遇到模板继承问题:

我有基本模板(比如 Parent ),其中包含以下字段:

  • 主题(指定查询的删除列表)

从中派生的模板( Child )。

问题是,一旦我继承了 Parent ,并使用TDS生成了它的模型,我得到了:

php bin/magento cache:clean

但期望获得 Guid 课程。一旦我开始主题字段输入 Multilist ,我就得到了:

public virtual string Theme {get; set;}

其中有 Guid 类型......

如何告诉TDS(GlassMapper)使用 Guid 而不是 string

2 个答案:

答案 0 :(得分:2)

您已经发现需要使用DropLink字段类型(存储guiGUID)而不是DropList(只存储值)。

您可以让TDS CodeGen模板返回链接的项目类型,而不是返回GUID,然后在Sitecore中再次查找该项目,而不是通过在Custom Data属性字段中设置对象类型

TDS Codegen

感兴趣2 main settings

  • type:对于单个链接的项目,例如DropLink。生成的代码将输出:

    public virtual AssetLibrary.LookupValue MyFieldName { get; set; }

  • generic:对于多个关联的项目,例如多列表字段

    public virtual IEnumerable<AssetLibrary.LookupValue> MyFieldName { get; set; }

由于大多数时候您希望guid解析为特定类型,因此这会保存一些样板代码以查找链接的项目,并且Glass将自动解析为链接的项目。

答案 1 :(得分:0)

好的,最后,我在写这个问题时发现了我的错误...我使用错误的类型主题

应使用 Droplink 而不是 Droplist