gpt4 book ai didi

c# - NHibernate 无法删除子实体

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:34 25 4
gpt4 key购买 nike

我有 2 个实体在 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. Cascading lifecycle

关于c# - NHibernate 无法删除子实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com