我有一个带有DeliveryDays集合的Address类。 映射如下(在这个辉煌的网站上找到!=):
HasMany(x => x.DeliveryDays)
.KeyColumn("AddressId")
.Not.Inverse()
.Not.KeyNullable()
.Not.KeyUpdate()
.Cascade.All();
我的DeliveryDay类没有对地址的引用,我宁愿不这样做!
在向集合添加项目时,一切都很好,但在删除项目时根本不行:不会生成SQL删除!
我错过了什么?
答案 0 :(得分:3)
要获得确切的答案,我认为您需要发布更多代码。根据您目前发布的代码,我的猜测是您想要使用 Cascade.AllDeleteOrphan()而不是Cascade.All()。
Cascade选项All仅在相关地址被删除时触发DeliveryDay上的删除,而Cascade选项AllDeleteOrphan将在从关联地址中删除DeliveryDay时触发删除(只要它与不同的地址无关)。