簡體   English   中英

Sitecore,由TDS創建的繼承模板字段的類型錯誤

[英]Sitecore, wrong type of inherited template field created by TDS

我對模板繼承有疑問:

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

  • 主題(指定查詢的Droplist)

並從中派生模板( Child )。

問題是,一旦我繼承Parent ,並使用TDS為其生成模型,我就會得到:

public virtual string Theme {get; set;}

但有望獲得Guid類。 有一次,我swithced 主題字段中鍵入多重表我:

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

里面有Guid類型...

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

您已經確定需要使用DropLink字段類型(存儲guiGUID)而不是DropList(僅存儲值)。

您可以讓TDS CodeGen模板返回鏈接的項目類型,而不是通過在“ Custom Data屬性字段中設置對象類型,而不是返回GUID,然后再次在Sitecore中查找項目然后檢索值。

TDS Codegen

感興趣的主要設置2個

  • type :對於單個鏈接的項目,例如DropLink。 生成的代碼將輸出:

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

  • generic :對於多個鏈接項目,例如MultiList字段

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

由於大多數時候您都希望GUID解析為特定類型,因此這會節省一些樣板代碼以查找鏈接的項目,Glass會自動將其解析為鏈接的項目。

好的,最后,我在寫這個問題時發現了我的錯誤...我為Theme使用了錯誤的類型:

應該使用Droplink而不是Droplist

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM