从NHibernate中的多个数据库映射关系

时间:2010-12-28 19:49:29

标签: nhibernate

我有一个配置了NHibernate的多数据库应用程序。与每个数据库中的表对应的实体位于各自的独立程序集中(如果愿意,则为每个数据库的程序集)。我需要/希望将实体从一个数据库与另一个数据库的实体相关联。到目前为止,一切都按照我的意愿运行(应用程序处理多个会话工厂等)。

我想要的关系是多对一的,但实际上我的应用程序只关心关系的一方(出于不相关的原因)。相关实体是项目和PMProject,项目有一个PMP项目。当我映射多对一时,我收到以下错误:

NHibernate.MappingException: An association from the table PROJECTS refers to an unmapped class: SDMS.PPRM.PMProject

项目映射本身读取(忽略时髦的列命名;它是Oracle数据库):

<many-to-one name="PMProject" class="SDMS.PPRM.PMProject" column="PM_PROJECT_ID" cascade="none" />

在class属性中,我引用了相应的程序集,但是我得到了这个错误,这似乎告诉我它根本无法找到PMProject的映射文件。但是该文件存在(它被设置为嵌入式资源),会话工厂实例化可以正常工作;所以我对如何告诉Project映射如何/在哪里寻找合适的映射感到茫然。有什么我想念的吗?一个更好的方法来解决这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:0)

该错误清楚地表明未加载PMProject的映射。

如果映射位于不同的程序集中,则需要将该程序集添加到配置中。

答案 1 :(得分:0)

我最终不得不绕过我的“理想”场景,避免在不同数据库的实体之间建立直接的对象关系。对于这个应用程序,没关系,对于具有相同req的未来应用程序,我想找到合适的解决方案。