我听说这也可以用触发器来完成,但如果可以的话,我宁愿不去那条路。现在,似乎将对子对象的引用归零只是将它们孤立在数据库中,这至少不是理想的说法。
谢谢!
答案 0 :(得分:7)
您可以设置级联选项以删除孤儿:
HasMany(x => x.Children).KeyColumn("ParentId").AsBag().Inverse()
.Cascade.AllDeleteOrphan();
要完成这项工作,您需要从父集合中删除子对象并刷新会话:
using (var txn = session.BeginTransaction())
{
parent.Children.Remove(child);
txn.Commit();
}
答案 1 :(得分:0)
我这里没有Fluent.NH,但我知道您可以为映射指定级联类型。将它设置为all-delete-orphan可以做你想要的。
如果您使用基于约定的配置,这应该为您提供一个起点..