0

テンプレートの継承に問題があります:

次のフィールドを含むベーステンプレート( Parentとしましょう)があります:

  • テーマ (クエリを指定したドロップリスト)

そしてそれから派生したテンプレート(Child )。

問題は、 Parentを継承し、TDS でそのモデルを生成すると、次のようになることです。

public virtual string Theme {get; set;}

しかし、Guidクラスを取得する予定です。Themeフィールドを Multilistと入力すると、のようになりました。

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

その中にGuidタイプがあるのは...

stringの代わりにGuidを持つように TDS(GlassMapper) に指示するにはどうすればよいですか?

4

2 に答える 2

2

DropLinkDropList (単に値を格納する) の代わりに、フィールド タイプ (guiGUID を格納する)を使用する必要があることは既に理解しています。

GUID を返し、Sitecore でアイテムを再度検索して値を取得する代わりに、Custom Dataプロパティ フィールドでオブジェクト タイプを設定することにより、TDS CodeGen テンプレートがリンクされたアイテム タイプを返すようにすることができます。

TDSコード生成

関心のある2 つの主な設定があります。

  • type: DropLink などの単一のリンクされたアイテムの場合。生成されたコードは次のように出力されます。

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

  • generic: MultiList フィールドなど、複数のリンクされたアイテムの場合

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

ほとんどの場合、GUID を特定のタイプに解決する必要があるため、これにより、リンクされたアイテムを検索する定型コードが節約され、Glass はリンクされたアイテムに自動的に解決されます。

于 2016-12-21T10:24:54.403 に答える
0

わかりました、最後に、この質問を書いているときに間違いを見つけました... Themeに間違ったタイプを使用しました:

Droplistの代わりにDroplinkを使用する必要があります

于 2016-12-20T12:01:33.900 に答える