无法使用自动映射获得NHibernate Cascade Delete Orphan

本文关键字:NHibernate Cascade Delete Orphan 映射 | 更新日期: 2023-09-27 18:28:50

已经尝试了几种解决方案来让NHibernate删除孤立记录。给定以下结构:

public class Parent {
    public virtual ICollection<Domain> Domains {get;set;}
}
public class Domain{
    public virtual Parent Parent {get;set;}
}

更新:这与二传手无关。这导致了其他问题,并已修复。但孤儿的删除仍然没有发生我尝试过以下几种:

  • 根据在Domains(以及Domain类的Parent属性)上添加属性http://mookid.dk/oncode/archives/643

  • 添加了自动映射,如:

    AutoMap.Override<Parent>(map => { map.HasMany(x => x.Domains).Inverse().Cascade.All(); })
    AutoMap.Override<Parent>(map => { map.HasMany(x => x.Domains).Cascade.All(); })
    

两者都导致域记录存储时Parent_Id=null。

关于如何结合自动映射实现这一点,有什么好的例子吗?

无法使用自动映射获得NHibernate Cascade Delete Orphan

您没有指定deleteOrphan

map.HasMany(x => x.Domains).Inverse().Cascade.AllDeleteOrphan()