1

学習目的で Sitecore 7 Autohaus デモをダウンロードしました。Autohaus コードに、モデル Car があることに気付きました。Sitecore が Car モデル (コード) と CarModel テンプレート (sitecore テンプレート) の間のマッピング方法をどのように知っているか知りたいです。

4

1 に答える 1

2

車のテンプレートと車のオブジェクト モデルの間には、さらにいくつかの手順があります。

Sitecore 7 の主な機能の 1 つは、組み込みの検索機能です。car テンプレートから作成された項目が保存されると、その情報は検索インデックス (Lucene または Solr) に保存されます。

Carモデルは、テンプレートまたはデータベース アイテムから直接マップされるのではなく、作成された検索ドキュメントからマップされます。

たとえば、LINQレイヤーを使用する場合

var index = ContentSearchManager.GetIndex("sitecore_master_index");
using (var context = index.CreateSearchContext())
{
    var query= context.GetQueryable<Car>()
                .Where(item => item.Seats == 2);
}

Sitecore は検索を実行し、「車」オブジェクトを取得して、Sitecore の を使用して検索結果からの情報を取り込みますDocumentMapper

これにより、オブジェクトのパブリック プロパティとインデクサーが設定されCarます。はDocumentMapper、オブジェクト型 (DateTime / int など) との間のキャストを処理します。

DocumentMapper一致するフィールド名でプロパティをマップしようとしますが、オブジェクト プロパティに属性を配置して、Sitecore がオブジェクトに明確にマップできるようにすることができます。

この例では、Sitecore にフィールド 'modelkey' をプロパティ ModelId にマップするように指示しています。

[IndexField("modelkey")]
public string ModelId { get; set; }

ほとんどのページで Autohaus で使用されている LINQ クエリを見ることができ、Sitecore 7 がどのように機能するかを学習するための優れたリソースになるはずです。

Sitecore 7 のさまざまな部分の詳細については、http ://www.sitecore.net/Community/Technical-Blogs/Sitecore-7-Development-Team.aspx を参照してください。

于 2013-10-03T08:09:30.077 に答える