没有NHibernate Cascade删除Orphan使用Automapping

时间:2012-03-23 09:49:52

标签: c# nhibernate automapping fluent-nhibernate-mapping nhibernate-cascade

尝试了几种解决方案让NHibernate删除孤儿记录。 鉴于以下结构:

public class Parent {

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

}
public class Domain{

    public virtual Parent Parent {get;set;}
}

更新 它与二传手没有任何关系。这导致其他问题出现了问题。但是孤儿的删除仍然没有发生 我尝试过以下方法:

  • 根据http://mookid.dk/oncode/archives/643

  • 在域上(以及Domain类的Parent属性)添加属性
  • 添加了Automapping,如:

    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一起存储。

有没有关于如何与Automapping结合实现这个的好例子?

1 个答案:

答案 0 :(得分:3)

您没有指定deleteOrphan

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