引用的行不再存在时忽略软外键

时间:2013-01-22 19:15:10

标签: hibernate nhibernate fluent-nhibernate foreign-keys nhibernate-mapping

我目前正在使用包含表 A 的NHibernate应用程序,该表曾经有另一个相关表 B 的外键引用。此后,有意删除了此约束,因为 B 中的项目可能会被辅助应用程序从我的控制中删除。

虽然约束现已消失,但如果 B 中的行仍然存在,那么从 A B 的引用仍然可以被认为是有用的,否则它可能被视为空。

如果从 A 引用的 B 中删除了一行,那么就会引发一个异常,说明“不存在具有给定标识符的行”。

中不再存在 A 的引用的情况下,有没有办法流畅地(或以其他方式避免显式查询/连接)让对象引用由应用程序返回null B ,但如果引用有效,则返回 B 所描述的对象?

当前的单向流畅映射(被视为外键引用)非常简单,看起来像

...
References(a => a.b_ref, "b_id");
...

1 个答案:

答案 0 :(得分:2)

通过将流畅映射更新为

,可以忽略引用并将其视为null
...
References(a => a.b_ref, "b_id").NotFound.Ignore();
...

有时,只需通过Google绊倒正确的关键字即可。