In this case I prefer a <generated> value by a trigger.

2008/12/18 Stefan Sedich <[email protected]>

>
> Hello,
>
> I am setting date last modified audit on an entity, I implement an
> IAuditableEntity interface and use a helper to set the date modified:
>
>  public override bool OnFlushDirty(object entity, object id, object[]
> currentState, object[] previousState, string[] propertyNames,
> global::NHibernate.Type.IType[] types) {
>
>            if (typeof(IAuditableEntity).IsAssignableFrom(entity.GetType()))
> {
>
>                // If entity is auditable as this is only an update
> set the last modified date.
>                SetValue(propertyNames, currentState, item =>
> item.LastModified, DateTime.Now);
>
>            }
>
>            return false;
>        }
>
>
> Type safe helper:
>
>  public void SetValue<T>(string[] propertyNames, object[] state,
> Expression<System.Func<IAuditableEntity, T>> propertyExpression, T
> value) {
>
>            var memberExpression = propertyExpression.Body as
> MemberExpression;
>            if (memberExpression == null)
>                throw new ArgumentException("The member expression was
> not a valid member expression.");
>
>            string name = memberExpression.Member.Name;
>            int index = propertyNames.ToList().IndexOf(name);
>
>            if(index == -1)
>                throw new
> InvalidOperationException(string.Format("Property {0} does no exist on
> entity.", name));
>
>            state[index] = value;
>
>        }
>
>
> Now the question is, I saw that you must set the current state and not
> the entity directly why would
>
> var ent = entity as IAuditableEntity;
> ent.LastModified = DateTime.Now;
>
> Not work properly or will it be fine to do this?
>
>
>
> Thanks
>
> --
> Stefan Sedich
> Software Developer
> http://weblogs.asp.net/stefansedich
>
> >
>


-- 
Fabio Maulo

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