Reputation: 5162
I am using NH 3.2 and try to implement auto audit by creating my own class
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
And my code calls ISession.Save()
then PerformSaveOrUpdate
, EntityIsTransient
and PerformSave
are fired in sequence, which is good.
But if I call ISession.SaveOrUpdate()
then nothing is fired.
Anything wrong which the code above?
Upvotes: 0
Views: 657
Reputation: 5162
I found the reason, that I made s mistake. I only registered nhConfig.EventListeners.SaveEventListeners
event but forget to register nhConfig.EventListeners.SaveOrUpdateEventListeners
event.
Upvotes: 1