Nhibernate ISession.SaveOrUpdate()不会在DefaultSaveOrUpdateEventListener中触发任何事件

Nhibernate ISession.SaveOrUpdate()不会在DefaultSaveOrUpdateEventListener中触发任何事件,nhibernate,Nhibernate,我正在使用NH3.2,并试图通过创建自己的类来实现自动审计 Public Class AuditEventListener Inherits DefaultSaveOrUpdateEventListener Protected Overrides Function PerformSave(entity As Object, id As Object, persister As IEntityPersister, _

我正在使用NH3.2,并试图通过创建自己的类来实现自动审计

Public Class AuditEventListener
    Inherits DefaultSaveOrUpdateEventListener

    Protected Overrides Function PerformSave(entity As Object, id As Object, persister As IEntityPersister, _
                                             useIdentityColumn As Boolean, anything As Object, source As IEventSource, _
                                             requiresImmediateIdAccess As Boolean) As Object

        Return MyBase.PerformSave(entity, id, persister, useIdentityColumn, anything, source, requiresImmediateIdAccess)
    End Function

    Protected Overrides Function PerformSaveOrUpdate([event] As SaveOrUpdateEvent) As Object
        Return MyBase.PerformSaveOrUpdate([event])
    End Function

    Protected Overrides Sub PerformUpdate([event] As NHibernate.Event.SaveOrUpdateEvent, entity As Object, persister As NHibernate.Persister.Entity.IEntityPersister)
        MyBase.PerformUpdate([event], entity, persister)
    End Sub

    Protected Overrides Function EntityIsPersistent([event] As NHibernate.Event.SaveOrUpdateEvent) As Object
        Return MyBase.EntityIsPersistent([event])
    End Function

    Protected Overrides Function EntityIsTransient([event] As NHibernate.Event.SaveOrUpdateEvent) As Object
        Return MyBase.EntityIsTransient([event])
    End Function
End Class
我的代码调用
ISession.Save()
然后依次触发
PerformSave或update
EntityIsTransient
PerformSave
,这很好

但是如果我调用
ISession.SaveOrUpdate()
,则不会触发任何操作


上面的代码有什么问题吗?

我找到了我犯了s错误的原因。我只注册了
nhConfig.EventListeners.SaveEventListeners
事件,但忘记注册
nhConfig.EventListeners.SaveOrUpdateEventListeners
事件。

这可能是个愚蠢的问题,但在创建会话工厂时,您是否将事件侦听器添加到正确的事件侦听器集合中?我有
Dim配置作为FluentConfiguration=fluent.Configure()…
然后
Dim nhConfig=config.BuildConfiguration()
然后
nhConfig.EventListeners.SaveEventListeners=New ISaveOrUpdateEventListener(){New AuditEventListener()}
。我想我应该有正确的事件记录。