I have actually managed to get something to work using Interceptors,
but I fear the solution could easily bug up or may not optimal.
Had to override OnFlushDirty, OnSave, FindDirty and SetSession from
EmptyInterceptor. It does work so far, but as I said it might not work
as good as it could.



On Jan 12, 5:15 pm, Henning <[email protected]> wrote:
> Thanks for the answer, but it didn't work :(
>
> I've tried many solutions, but it seems that I cannot update/save any
> entities to the session in the Pre/Post events.
>
> On Jan 12, 4:29 pm, Valeriu Caraulean <[email protected]> wrote:
>
>
>
> > And for us it worked using IPost... events.
> > Hope this helps...
>
> > On Tue, Jan 12, 2010 at 2:50 PM, Henning <[email protected]> wrote:
> > > Hi
>
> > > After a few looong days and a lot of searching I thought I'd try to
> > > get some help here.
>
> > > On a few of our entities we need to perform an audit and log the dirty/
> > > changed fields in a separate table.
> > > I've seen that some people here have asked the same question, but no
> > > answer seem to work.
>
> > > What I need to do is to add a new row to the table with the following
> > > info:
> > > entity id,
> > > event type
> > > property name
> > > old value
> > > new value
> > > user
>
> > > Please note that this is not the regular audit info that Ayende
> > > blogged about, where you insert ModifiedBy, ModifiedDate etc.
>
> > > Almost everything works perfectly. I'm able to retrieve the dirty
> > > values, create the audit entity, but the problem is in the saving of
> > > those entities.
> > > I'm using IPreUpdateEventListener and have also tried
> > > IPostUpdateEventListener, but to no avail. Session does not save the
> > > new entities at all, and throws no exception.
> > > The code I'm trying is as follows:
>
> > > public bool OnPreUpdate(PreUpdateEvent updateEvent   )
> > > {
> > >            var entity = updateEvent.Entity as ApprovedClaim;
> > >            if (entity == null)
> > >                return false;
>
> > >            var session = updateEvent.Session;
> > >            var history = new EntityHistory
> > > (entity.Id,EventType.Update, "propname", "2", "3", null);
>
> > >            session.Save(history);
>
> > >            return false;
> > > }
>
> > > If I can't get it to work I seriously have to consider using DB
> > > triggers, but I'd rather use NH's capabilities.
>
> > > Anybody have a clue on what's going on here?
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "nhusers" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<nhusers%[email protected]­­>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/nhusers?hl=en.
-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.


Reply via email to