NHibernate重新父化,内存中没有实体重复

时间:2019-05-24 12:30:56

标签: nhibernate nhibernate-mapping

我有与父母/子女关系有关的问题。
我需要通过将所有孩子从一个转移到另一个来“合并”两个父母。
该操作假定不会删除任何孩子/孤儿

我像下面这样设置配置父/子(没有从子引用父):

Component(x => x.PreferredCategories,
    m =>
    {
        m.HasMany<PreferredCategory>(Reveal.Member<PreferredCategories, IEnumerable<PreferredCategory>>("List"))
        .KeyColumn("CandidateId")
        .Cascade.SaveUpdate();
    });

并设置了Mergin的操作,只需将其添加到parent2子窗体parent1中即可

public void Merge(Parent p)
{
    foreach(var item in p.List)
    {
        this.List.Add(item);
    }
}

主要问题是,从parent1合并子对象之后,我们仍然在parent1中看到此对象,但是在db中持久存储更改后,该对象已正确存储。

如何实现目标,parent1在合并对象后有一个空列表? 通过定制收集? 或按明确的孩子名单?

非常感谢!

0 个答案:

没有答案