Hi folks,

I'm into a record versioning requirement of all mapped entities (using 
hbm.xml files).

    public class User
    {
        public virtual String UserName { get; set; }
        public virtual String Password { get; set; }
        (...)
        public virtual Int32 SysVersion { get; set; }
    }

I'm invoking IPostInsertEventListener from nhibernate.cfg.xml:

    <event type="post-insert">
      <listener class="myEvents.PostInsert, myAssembly />
    </event>

This is the code:

   public class PostInsert : IPostInsertEventListener
    {
        //IPreInsertEventListener
        //public bool OnPreInsert(PreInsertEvent preInsertEvent)
        //{
        //    Correction(preInsertEvent.Entity);
        //    return false;
        //}

        //internal static void Correction(object entity)
        //{
        //    var sysVersion = 
entity.GetType().GetProperties().FirstOrDefault
        //        (
        //            p => p.PropertyType == typeof(Int32) && 
p.Name.ToLower() == "sysversion"
        //        );

        //    if (sysVersion == null)
        //        return;

        //    sysVersion.SetValue(entity, 1, null);
        //}
        public void OnPostInsert(PostInsertEvent @event)
        {
            //@event.Entity

            var sysVersion = 
@event.Entity.GetType().GetProperties().FirstOrDefault
                (
                    p => p.PropertyType == typeof(Int32) && 
p.Name.ToLower() == "sysversion"
                );

            if (sysVersion == null)
                return;

            sysVersion.SetValue(@event.Entity, 1, null);
        }

I need centralize sysVersion Insert and Update and then audit both 
operations in an audit table. Code runs sysVersion.SetValue, but, NH does 
not save sysVersion=1 into the table.

Please can you help me ?

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to