我在哪里创建SharpArchitechture项目中的映射文件

时间:2010-11-03 13:31:49

标签: asp.net-mvc nhibernate fluent-nhibernate

我正在关注sharparchitecture.net上的教程。我用T4创建了一些实体,但是我无法弄清楚数据库的映射在哪里完成了?

我想在映射文件中创建一些关系,但是我应该添加一个新的映射文件还是已经用T4创建了一个?

1 个答案:

答案 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 方法中。