NHibernate:未初始化的代理传递给save()和cascade

jon*_*nii 6 c# nhibernate

我在调用session.Save()时遇到NHibernate.PersistentObjectException,这是由于未初始化的代理传递给save().如果我摆弄我的级联设置,我可以让它消失,但是后来没有保存子对象.

我找到的唯一其他修复方法是将以下内容添加到DefaultSaveEventListener中.

    protected override bool ReassociateIfUninitializedProxy(object obj, global::NHibernate.Engine.ISessionImplementor source)
    {
        if (!NHibernateUtil.IsInitialized(obj))
            NHibernateUtil.Initialize(obj);

        return base.ReassociateIfUninitializedProxy(obj, source);
    } 
Run Code Online (Sandbox Code Playgroud)

这显然不是一个理想的解决方案.

有任何想法吗?

Joe*_*Joe 2

您是否正在尝试使用根聚合实体上的列表中的子对象?如果是,您需要使用 root ,遍历到子项,进行更改,然后保存root,而不是子项。