我在单独的类中创建了一个 HibernateMapping。映射和类位于一个程序集中。我用来测试这个的 NUnit 测试位于另一个程序集中。 我想我是在这篇文章this中这样做的
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 是否错误?
我不想单独添加我的所有映射。
最佳答案
您可以将一个类从其所属的程序集中添加到 Addmappings
中。
我的配置是这样的:-
mapper.AddMappings(typeof(CmsMeta).Assembly.GetTypes());
基本上我有 50 个左右的映射类,但只需要指定其中一个所在的程序集。 NHibernate 将自动扫描该程序集以查找其余部分。我的所有映射和模型类都位于一个单独的程序集中 Domain.Model
关于c# - 使用 NHibernate 的 ModelMapper 并通过代码进行映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294067/