使用ModelMapper for NHibernate通过代码进行映射

本文关键字:代码 映射 ModelMapper for NHibernate 使用 | 更新日期: 2023-09-27 18:00:12

我在单独的类中创建了一个Hibernate映射。映射和类在一个程序集中。我用来测试这一点的NUnit测试在另一个程序集中。我想我在这个的帖子中做得很好

class testMapping : ClassMapping<test>{
//myMappings
}

现在我创建了一个映射器并将其添加到我的配置中:

var cfg=new Configuration();
cfg.Configure();
var mapper = new ModelMapper();
mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes());
cfg.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntries());
var session = cfg.BuildSessionFactory();

但找不到我的映射。是否将mapper.AddMappings()替换为:

mapper.AddMappings(New List<SystemType> {typeof(testMapping)});

它会起作用的。

我用错GetExecutingAssembly了吗?

我不想单独添加所有映射。

使用ModelMapper for NHibernate通过代码进行映射

您可以从Addmappings所属的程序集向其添加一个类。

我的配置是这样的:-

mapper.AddMappings(typeof(CmsMeta).Assembly.GetTypes());

基本上我有50个左右的映射类,但只需要指定其中一个类所在的程序集。NHibernate将自动扫描该程序集以找到其余的程序集。我的所有映射和模型类都位于一个单独的程序集Domain.Model