我正在关注sharparchitecture.net上的教程。我用T4创建了一些实体,但是我无法弄清楚数据库的映射在哪里完成了?
我想在映射文件中创建一些关系,但是我应该添加一个新的映射文件还是已经用T4创建了一个?
答案 0 :(得分:4)
SharpArchitecture使用FluentNHibernate根据项目PROJECT.Core中定义的实体自动创建NHibernate映射。它将基于域模型定义关系。您会发现经常需要自定义映射。
项目PROJECT.Data是您将对默认映射执行覆盖的位置。在这个项目中,你会找到一个名为NHibernateMaps的文件夹,它有几个类来设置默认的映射策略。第1步将评估默认映射策略,以确定是否需要对默认策略进行任何系统范围的更改。其次,您可能希望覆盖特定实体的映射。为此,请创建一个名为[EntityClass] Map的新类,如下所示:
public class EntityMap : IAutoMappingOverride<Entity> {
public void Override(AutoMapping<Entity> mapping) {
//use the mapping. to override default mappings. Here is just an example
mapping.References(x => x.EntityCategory).Fetch.Join();
mapping.References(x => x.EntitySubItem).NotFound.Ignore();
}
}
您的应用程序将此全部绑定在global.asax.cs中的 InitializeNHibernateSession 方法中。