[英](Fluent) NHibernate: force foreign key to null on delete
我有一個標准的父-子(1:許多)關系,使用Fluent NHibernate配置:
在家長方面:
HasMany(x => x.Items).Inverse().Cascade.All();
在孩子方面:
Map(x => x.ItemCategory).Nullable().Index("idx_item_category").Not.LazyLoad()
(根據Epitka的評論進行編輯:)
通過調用刪除記錄
session.Delete(item_category)
這是在事務中完成的唯一操作。
(結束編輯)
當前,當我刪除ItemCategory記錄時,它會將刪除級聯到所有項目,根據文檔顯示,該項目似乎按預期工作。
我想要的是在刪除ItemCategory記錄時將Item.ItemCategory 自動設置為null。
我似乎只能完全關閉級聯,這會導致數據庫損壞(項目引用了缺失的類別)。 因此,當前我必須手動執行此操作,這比我想要的容易出錯。
是否可以配置此行為?
session.Delete(item_category)
雖然不可能立即執行此操作,但是您可以實現IPreDeleteEventListener
,該事件觸發HQL更新以將Items的ItemCategory設置為null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.