Are you committing the parent transaction?

   Diego


On Tue, May 25, 2010 at 05:06, deejbee <[email protected]>wrote:

> Thanks Diego, I tried what you suggested (it makes perfect sense) but
> it doesn't insert the Audit record.  I can see the Audit recordt in
> the child session but it doesn't commit. I've tried using the various
> FlushMode options but they don't seem to make any difference either.
>
> Any suggestions?
>
>
>
> On May 25, 2:28 am, Diego Mijelshon <[email protected]> wrote:
> > I suggest that you use IPost* events for auditing.
> > And use a child session for saving. Example:
> >
> > public class AuditEventListener : IPostInsertEventListener
> > {
> >     public void OnPostInsert(PostInsertEvent e)
> >     {
> >         var audit = new Audit
> >         {
> >             CreatedBy = ...
> >             ...
> >         };
> >         e.Session.GetSession(EntityMode.Poco).Save(audit);
> >     }
> >
> > }
> >
> >    Diego
> >
> > On Mon, May 24, 2010 at 11:38, deejbee <[email protected]
> >wrote:
> >
> >
> >
> > > I'm implementing auditing of inserts so I've implemented
> > > IPreInsertEventListener and it's firing as I would expect however I'm
> > > trying to create a new Audit record in the same database with details
> > > of the record that was originally being created (via SaveAndFlush()).
> >
> > > An exception "Collection was modified; enumeration operation may not
> > > execute." is being thrown and the transaction is rolled back.  I tried
> > > creating a child session for the audit record but that didn't seem to
> > > make any difference.  Does anyone have an example how to do this or
> > > what I might be doing wrong?
> >
> > >        public bool OnPreInsert(PreInsertEvent e)
> > >        {
> >
> > >            Audit audit = new Audit();
> > >            audit.CreatedBy = "somename";
> > >            audit.CreatedDateTime = DateTime.Now;
> > >            <<others snipped>>
> >
> > >            audit.Save();
> >
> > >            return false;
> > >        }
> >
> > > Many Thanks
> >
> > > --
> > > 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]>
> <nhusers%[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]<nhusers%[email protected]>
> .
> > For more options, visit this group athttp://
> 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]<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