Why do you use Trigger? Just use event listeners instead of triggers so you
are done?

On Mon, Oct 6, 2008 at 3: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
>
>
> >
>


-- 
Tuna Toksöz

Typos included to enhance the readers attention!

--~--~---------~--~----~------------~-------~--~----~
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