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。我做错了什么?

NHiberante无法删除子实体

要使所有这些工作正常,您应该使用inverse="true"设置:

HasMany(x => x.RepairShopWeekDayProperties)
   .Inverse() // here we go
   .KeyColumn("RepairShopId")
   .AsSet()
   .Cascade
   .AllDeleteOrphan();

查看此项了解更多详细信息:21.3。级联生命周期