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 将自动解析为链接项。
我对模板继承有疑问:
我有包含以下字段的基本模板(比如 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 将自动解析为链接项。