簡體   English   中英

(流暢)NHibernate:刪除時強制外鍵為null

[英](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)

這是在事務中完成的唯一操作。

(結束編輯)

當前,當我刪除I​​temCategory記錄時,它會將刪除級聯到所有項目,根據文檔顯示,該項目似乎按預期工作。

我想要的是在刪除ItemCategory記錄時將Item.ItemCategory 自動設置為null。

我似乎只能完全關閉級聯,這會導致數據庫損壞(項目引用了缺失的類別)。 因此,當前我必須手動執行此操作,這比我想要的容易出錯。

是否可以配置此行為?
session.Delete(item_category)

雖然不可能立即執行此操作,但是您可以實現IPreDeleteEventListener ,該事件觸發HQL更新以將Items的ItemCategory設置為null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM