gpt4 book ai didi

c# - NHibernate:传递给 save() 和级联的未初始化代理

转载 作者:太空狗 更新时间:2023-10-29 21:26:01 26 4
gpt4 key购买 nike

我在调用 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);
}

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

有什么想法吗?

最佳答案

使用以下配置 Xml,仅存在不包含覆盖或扩展行为的自定义 DefaultSaveEventListener 子类就足以为我触发此异常:

<event type="save-update">
<listener class="MyNamespace.MyCustomSaveEventListener, MyAssembly" />
</event>

我将继续讨论 in this question .

更新:

我错误地派生自 DefaultSaveEventListener 而不是 DefaultSaveOrUpdateEventListener,更改父类(super class)使这个问题对我来说消失了。

关于c# - NHibernate:传递给 save() 和级联的未初始化代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com