我下载了 Sitecore 7 Autohaus 演示用于学习目的。我注意到在 Autohaus 代码中,有一个模型 - Car。我想知道sitecore如何知道如何在汽车模型(代码)和汽车模型模板(sitecore模板)之间进行映射。
问问题
451 次
1 回答
2
汽车模板和汽车对象模型之间还有几个步骤。
Sitecore 7 的主要功能之一是嵌入式搜索功能。当保存从汽车模板创建的项目时,该信息将存储在搜索索引(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 回答