我如何抑制Nhibernate加载对象,这在数据库中不存在?

时间:2017-09-25 07:43:39

标签: nhibernate nhibernate-mapping

我在客户端hbm文件中以多对一关系引用父对象。 父母和子女的示例代码在

之下

<class name="Investments" table="investments">
<many-to-one name="Region" Class="BO.Region" column="regionId" not-null="true" lazy="false" />
</class>

<class name="Region" table="region">
    <id name="ID">
    <column name="regionId" type="sql-int" not-null="true"/>
    <generator class="assigned"/>
</id>
<property name="RegionName">
    <column name="regionName" not-null="true"/>                             
</property>
</class>

我们有2个sepearte SQL Server数据库(DB1和DB2),其中有孩子,所以我使用相同的Class&amp;两个数据库中的hbm文件。 但是Parent只存在于一个数据库(DB1)中。

当我使用Nhibernate 2.0时,保存一个新的客户端对象,使用工作正常。但是使用Nhibernate 4.0,当我在DB2中保存一个新的Child对象时,我收到错误&#34;找不到区域&#34;。 Nhibernate试图在DB2中找到区域表,而不是那里。

设置懒惰=&#34; true&#34;在多对一的关系,工作,但它不是一个选项,因为代码的某些部分需要eagar加载。

这里的问题是,如何抑制Nhibernate加载对象,这在Database2中不存在?

0 个答案:

没有答案