c# - 使用 NHibernate 的 ModelMapper 并通过代码进行映射

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

我在单独的类中创建了一个 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/

相关文章:

c# - 媒体播放器 c# 从网络播放

c# - 从另一个构造函数调用构造函数

NHibernate 使用 CASE 命令

nhibernate - 使用 NHibernate 将属性映射到另一个表

c# - 如何优化此 Linq 查询以删除不必要的 SELECT Count(*)

c# - StackExchange.Redis:没有连接可用于服务此操作:SET

nhibernate - 使用Fluent nHibernate映射到多个表

nhibernate - CaSTLe ActiveRecord 中的 isWeb 属性是什么

nhibernate - 当 cascade 是 delete-all-orphan 时,如何在 NHibernate 中更改 child 的 parent ?

fluent-nhibernate - FluentNHibernate - ClassMap 与 IAutoMappingOverride