流畅的NHibernate配置,用于单向一对多关系 - 删除问题

时间:2014-06-02 08:58:10

标签: fluent-nhibernate mapping one-to-many

我有一个带有DeliveryDays集合的Address类。 映射如下(在这个辉煌的网站上找到!=):

HasMany(x => x.DeliveryDays)
                .KeyColumn("AddressId")
                .Not.Inverse() 
                .Not.KeyNullable() 
                .Not.KeyUpdate() 
                .Cascade.All();

我的DeliveryDay类没有对地址的引用,我宁愿不这样做!

在向集合添加项目时,一切都很好,但在删除项目时根本不行:不会生成SQL删除!

我错过了什么?

1 个答案:

答案 0 :(得分:3)

要获得确切的答案,我认为您需要发布更多代码。根据您目前发布的代码,我的猜测是您想要使用 Cascade.AllDeleteOrphan()而不是Cascade.All()

Cascade选项All仅在相关地址被删除时触发DeliveryDay上的删除,而Cascade选项AllDeleteOrphan将在从关联地址中删除DeliveryDay时触发删除(只要它与不同的地址无关)。