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.
