我正在使用一个不总是使用 FK 的遗留数据库。例如,我有一个实体 Person 和一个实体 Country。一个人有一个 Country,它在 Person 映射中被映射为多对一。
<many-to-one name="Country" class="Country" foreign-key="none" lazy="false" not-found="ignore" fetch="join" outer-join="true" column="countryid"/>
当人具有null
列值(countryid)时,它不会执行额外的选择查询(因为它知道国家表中不会有引用),但是当人具有0
列值时,NH 将执行另一个选择查询如果该国家/地区实际上不存在,请检查国家/地区表。但是因为我们做了一个左外连接,NH 应该已经知道它不存在。只是为了澄清一下,如果列的值为1
并且它存在于国家表中,它将不会执行额外的选择。
反正有没有告诉 NHibernate 不要做额外的选择查询?
谢谢