我在分离的类中创建了一个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错误?
我不想单独添加所有映射。
答案 0 :(得分:2)
您可以从它所属的程序集中为Addmappings
添加一个类。
我的配置是这样的: -
mapper.AddMappings(typeof(CmsMeta).Assembly.GetTypes());
基本上我有50个左右的映射类,但只需要指定其中一个所在的程序集。 NHibernate将自动扫描该程序集以查找其余部分。我的所有映射和模型类都位于一个单独的程序集Domain.Model