NHiberante无法删除子实体
本文关键字:实体 删除 NHiberante | 更新日期: 2024-07-23 07:46:42
我在NHibernate中有两个实体一对多映射。这是父实体中的映射:
HasMany(x => x.RepairShopWeekDayProperties).KeyColumn("RepairShopId").AsSet().Cascade.AllDeleteOrphan();
这是子实体中的映射:
Map(x => x.RepairShopId).Column("RepairShopId").Not.Insert().Not.Update();
References(x => x.RepairShop).Column("RepairShopId").Not.Nullable();
当我试图删除分配给修理厂的所有WeekDayProperties时,如下所示:
rs.RepairShopWeekDayProperties.Clear();
我看到WeekDayProperty实体在事务提交时没有被删除-NHibernate只是试图将RepairShopId设置为null。我做错了什么?
要使所有这些工作正常,您应该使用inverse="true"
设置:
HasMany(x => x.RepairShopWeekDayProperties)
.Inverse() // here we go
.KeyColumn("RepairShopId")
.AsSet()
.Cascade
.AllDeleteOrphan();
查看此项了解更多详细信息:21.3。级联生命周期