开发者

(Fluent) NHibernate: force foreign key to null on delete

开发者 https://www.devze.com 2023-01-20 16:36 出处:网络
I have a standard parent - child (1:many) relationalship, configured using Fluent NHibernate: On the parent side:

I have a standard parent - child (1:many) relationalship, configured using Fluent NHibernate:

On the parent side:

HasMany(x => x.Items).Inverse().Cascade.All();

and on the child side:

Map(x => x.ItemCategory).Nullable().Index("idx_item_category").Not.LazyLoad(开发者_开发百科)

(Edit in response to epitka's comment:)

The record is deleted by calling

session.Delete(item_category)

This is the only operation done in the transaction.

(End Edit)

Currently when I delete an ItemCategory record it cascade the delete to all the items, which appears to be working as expected according to the documentation.

What I want is for Item.ItemCategory to be set to null automatically when the ItemCategory record is deleted.

I can only seem to turn off the cascade completely, which leads to a broken database (item's referencing a missing category). So, currently I have to do this manually which is a little more error prone than I'd like.

Is it possible to configure this behaviour?

session.Delete(item_category)


Whil it's not possible to do that out of the box, you can probably implement an IPreDeleteEventListener that fires an HQL update to set the Items' ItemCategory to null.

0

精彩评论

暂无评论...
验证码 换一张
取 消