使用ModelMapper for NHibernate和代码映射

时间:2014-04-25 13:06:25

标签: c# nhibernate nhibernate-mapping .net-assembly

我在分离的类中创建了一个HibernateMapping。 Mapping和类在一个Assembly中。我用来测试它的NUnit测试是在另一个Assembly中。 我想我在这篇文章this

中做到了
class testMapping : ClassMapping<test>{
//myMappings
}

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

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错误?

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

1 个答案:

答案 0 :(得分:2)

您可以从它所属的程序集中为Addmappings添加一个类。

我的配置是这样的: -

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

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