Я использую NH 3.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()
, затем PerformSaveOrUpdate
, EntityIsTransient
и PerformSave
запускаются последовательно, что хорошо.
Но если я позвоню ISession.SaveOrUpdate()
, то ничего не сработает.
Что-нибудь не так, какой код выше?