奇怪的NHibernate异常:'未初始化的代理传递给save()。'由工厂事件配置引起的

时间:2010-07-22 13:33:57

标签: nhibernate events listener

使用以下配置Xml时,仅存在一个自定义DefaultSaveEventListener子类不包含过度或扩展行为就足以在刷新或提交事务时触发这个奇怪的异常:

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

如果我对上述内容进行评论,则可以正常使用。但就像我说的那样,即使没有定义重写或扩展事件监听器行为,也会发生这种情况。我知道这些<event>元素似乎不是默认NHibernate配置的附加元素,因此在此元素中配置的任何内容都会替换其他所有内容,因此从默认实现派生的常见做法。

NHibernate.Event.Default.DefaultSaveOrUpdateEventListener方法中的类ReassociateIfUninitializedProxy发生异常。即使只注册了此侦听器并且从工厂配置中删除了所有其他拦截/扩展,也会发生这种情况。

有人对此有任何想法吗?我需要使用此侦听器接口实现一些扩展行为。捕获异常并扔掉它似乎没有造成任何损害,但返回值应该是什么?

1 个答案:

答案 0 :(得分:1)

哎呀是从DefaultSaveEventListener而不是DefaultSaveOrUpdateEventListener派生出来的......改变超类让问题消失了 - 应该睁开我的眼睛。