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

Sitecore, wrong type of inherited template field created by TDS

我对模板继承有疑问:

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

以及派生自它的模板()。

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

public virtual string Theme {get; set;}

但期望获得 Guid class。一旦我切换 Theme 字段键入 Multilist 我得到:

public virtual IEnumerable<Guid> Themes {get; set;}

其中有 Guid 输入...

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

好吧,终于,我在写这个问题时发现了我的错误......我为主题使用了错误的类型:

应该使用 Droplink 而不是 Droplist.

您已经知道您需要使用 DropLink 字段类型(它存储一个 guiGUID)而不是 DropList(它只存储值)。

无需 return 获取 GUID,然后在 Sitecore 中再次查找项目以检索值,您可以让 TDS CodeGen 模板 return 链接项目类型,而不是通过设置Custom Data 属性 字段中的对象类型。

2 main settings 个感兴趣:

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

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

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

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

由于大多数时候您希望 guid 解析为特定类型,这可以节省一些用于查找链接项的样板代码,Glass 将自动解析为链接项。