NHibernate可以流畅配置,以便在其引用设置为null时删除子项吗?

Bra*_*ton 3 nhibernate nhibernate-mapping fluent-nhibernate

我听说这也可以通过触发器实现,但如果可以的话,我宁愿不去那条路.现在,似乎将对子对象的引用归零只是将它们孤立在数据库中,这至少不是理想的说法.

谢谢!

Jam*_*Ide 7

您可以设置级联选项以删除孤儿:

HasMany(x => x.Children).KeyColumn("ParentId").AsBag().Inverse()
    .Cascade.AllDeleteOrphan();
Run Code Online (Sandbox Code Playgroud)

要完成这项工作,您需要从父集合中删除子对象并刷新会话:

using (var txn = session.BeginTransaction())
{
    parent.Children.Remove(child);
    txn.Commit();
}
Run Code Online (Sandbox Code Playgroud)