NHibernate无法删除子实体

时间:2013-12-05 15:59:54

标签: c# nhibernate fluent-nhibernate

我有两个实体在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。我做错了什么?

1 个答案:

答案 0 :(得分:2)

要完成所有工作,您应该使用inverse="true"设置:

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

选中此处了解详情:21.3. Cascading lifecycle