2013-10-03 62 views
1

我已經下載了Sitecore 7 Autohaus演示用於學習目的。 我注意到在Autohaus代碼中,有一個模型 - 汽車。 我想知道sitecore如何知道如何在Car模型(代碼)和CarModel模板(sitecore模板)之間進行映射。sitecore 7如何將模板映射到類

回答

2

汽車模板和汽車對象模型之間還有幾個步驟。

Sitecore 7的主要功能之一是嵌入式搜索功能。當物品,從汽車模板創建,保存,這些信息被存儲在

Car模型不直接從模板或數據庫項目,但自創建的搜索文件映射搜索索引(Lucene的或SOLR)是。

當你使用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