我聽說這也可以用觸發器來完成,但我寧願不走那條路,如果可以的話。現在看起來,對子對象的無效引用只會使它們在數據庫中成爲孤兒,這並不理想。NHibernate可以流利的配置刪除孩子時,其參考設置爲空?
謝謝!
我聽說這也可以用觸發器來完成,但我寧願不走那條路,如果可以的話。現在看起來,對子對象的無效引用只會使它們在數據庫中成爲孤兒,這並不理想。NHibernate可以流利的配置刪除孩子時,其參考設置爲空?
謝謝!
您可以設置級聯選項刪除孤兒:
HasMany(x => x.Children).KeyColumn("ParentId").AsBag().Inverse()
.Cascade.AllDeleteOrphan();
爲了使這您需要從父級集合中刪除子對象並刷新會話:
using (var txn = session.BeginTransaction())
{
parent.Children.Remove(child);
txn.Commit();
}
我沒有Fluent.NH在這裏,但我知道你可以指定級聯類型的映射。將它設置爲全刪除孤兒應該做你想問的。
如果您使用基於約定的配置這應該給你一個起點..