Dear All, A similar query relating to this question. My entities have child entities that also need their audit fields to be set. When saving the parent entity, I was under the impression that the event listener would fire for each child entity that is going to be saved, however that doesn't seem to be the case.
Does anyone have any suggestions? Thanks, Mark On Oct 6, 1:38 pm, Oz <[EMAIL PROTECTED]> wrote: > Dear NHUsers, > > I read your Gabriel Schenker's soft deletes article > (http://www.nhforge.org/blogs/nhibernate/archive/2008/09/06/soft-deletes.aspx) > with great interest and it was very useful! I have a similar but > slightly different requirement which I'm having some trouble > implementing, and I wonder if you're able to offer some advice? > > I need to actually do a physical delete from a table, but to update > the “ModifiedDate” and “ModifiedBy” fields on the object BEFORE > deletion. The reason I need to do this is that I have a trigger that > will fire on deletions, and copy the row to a history table. I’d like > the row in the history table to reference the actual deletion time and > have the name of the person who deleted it. > > At the moment, the code I have is as follows, although I have tried > various different options. > > protected override void > DeleteEntity(NHibernate.Event.IEventSource session, object entity, > NHibernate.Engine.EntityEntry entityEntry, bool > isCascadeDeleteEnabled, > NHibernate.Persister.Entity.IEntityPersister persister, > Iesi.Collections.ISet transientEntities) > { > IAuditable auditable = entity as IAuditable; > > if (auditable != null) > { > auditable.ModifiedDate = DateTime.Now; > auditable.ModifiedBy = "mark"; > > CascadeBeforeDelete(session, persister, auditable, > entityEntry, transientEntities); > base.DeleteEntity(session, auditable, entityEntry, > isCascadeDeleteEnabled, persister, transientEntities); > CascadeAfterDelete(session, persister, auditable, > transientEntities); > } > else > { > base.DeleteEntity(session, entity, entityEntry, > isCascadeDeleteEnabled, persister, transientEntities); > } > } > > The code above simply deletes the row, without propagating the update > first. I’ve also tried doing a session.Update(...) before the > CascadeBeforeDelete to no avail. > > I wonder if you could offer any suggestions! I’m quite new to > NHibernate, but appreciate its power and convenience :-) > > Kindest regards, > > Mark --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
