我正在使用 Fluent 和 NHibernate。
我有两个对象 A 和 B,它们之间具有多对多关系。
当 A HasMany B 时,我使用单向多对多映射。 B中没有关于A(单向)的参考。
这会在数据库中创建第三个表(名为 ABMapping),其中包含与 A 和 B 的主键相关的两列。
如果我删除对象 A,则 ABMapping 表中与 A 相关的条目将被删除。这很酷。
但是,现在我无法删除对象 B,因为它有 FK 约束。如何设置才能在删除 B 时自动删除 ABMapping 中与 B 相关的所有条目?
如果 B 没有引用 A,则它不知道映射表,因此无法级联删除。在我看来,你有两个选择:
- 使用 FK 或触发器上的级联删除来级联数据库中的删除。
- 将关系从B映射到A;您不必将其公开给类的使用者,可以使用访问策略将 A 集合映射为私有字段。我总是对集合执行此操作(使用 .Access.CamelCaseField(Prefix.Underscore)),这样我就不会公开 IList。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)