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

C# Sitecore,TDS创建的继承模板字段类型错误,c#,sitecore,sitecore7.2,glass-mapper,tds,C#,Sitecore,Sitecore7.2,Glass Mapper,Tds,我在模板继承方面有问题: 我有一个基本模板(比如父模板),其中包含以下字段: 主题(指定查询的Droplist) 以及从中派生的模板(子项) 问题是,一旦我继承了父项,并使用TDS为其生成了模型,我就得到了: 公共虚拟字符串主题{get;set;} 但应获得Guid类。一旦我切换主题字段以键入Multilist,我得到: 公共虚拟IEnumerable主题{get;set;} 其中包含Guid类型 如何告诉TDS(GlassMapper)使用Guid而不是字符串?好的,最后,我在写这个问题时

我在模板继承方面有问题:

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

  • 主题(指定查询的Droplist)
以及从中派生的模板(子项)

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

公共虚拟字符串主题{get;set;}

但应获得Guid类。一旦我切换主题字段以键入Multilist,我得到:

公共虚拟IEnumerable主题{get;set;}

其中包含Guid类型


如何告诉TDS(GlassMapper)使用Guid而不是字符串?

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


应该使用Droplink而不是Droplist。

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


应该使用Droplink而不是Droplist。

您已经发现需要使用
Droplink
字段类型(存储guiGUID)而不是Droplist(仅存储值)

您可以让TDS CodeGen模板通过在
自定义数据
属性字段中设置对象类型来返回链接的项目类型,而不是返回GUID,然后在Sitecore中再次查找项目以检索值

值得注意的是:

  • 类型
    :用于单链接项目,例如DropLink。生成的代码将输出:

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

  • 通用
    :用于多个链接项,例如多列表字段

    公共虚拟IEnumerable MyFieldName{get;set;}


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

您已经了解到,您需要使用
DropLink
字段类型(存储guid)而不是DropList(仅存储值)

您可以让TDS CodeGen模板通过在
自定义数据
属性字段中设置对象类型来返回链接的项目类型,而不是返回GUID,然后在Sitecore中再次查找项目以检索值

值得注意的是:

  • 类型
    :用于单链接项目,例如DropLink。生成的代码将输出:

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

  • 通用
    :用于多个链接项,例如多列表字段

    公共虚拟IEnumerable MyFieldName{get;set;}

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