Estoy tratando de usar NHibernate con una base de datos existente. En el modelo de datos, hay columnas en cada tabla que contienen la hora y el nombre de usuario de la última actualización realizada en una fila. ¿Cómo hago esto usando NHibernate?¿Cómo implemento las columnas ChangeTime y ChangeUser usando NHibernate?
Intenté implementar un interceptor que establezca ChangeTime y ChangeUser en las entidades antes de que se guarde con el método IInterceptor.OnSave. Esto no funcionó porque la configuración de estas propiedades desencadena una actualización de la fila, incluso si no se han modificado otras propiedades.
Podría haber funcionado si hubiera alguna manera de decirle a NHibernate que excluyera las propiedades ChangeTime y ChangeUser, luego lo hace con comprobación sucia. Pero no he encontrado ninguna forma de lograr esto.
Gracias por cualquier ayuda.
Gracias! Muy buena respuesta, me ayudó mucho. Este método no modifica las propiedades de las entidades, solo lo que se escribe en la base de datos. Pero parece que no hay problema para establecer las propiedades de la entidad al mismo tiempo. –
Para obtener una solución más completa a este problema exacto, consulte http://ayende.com/Blog/archive/2009/04/29/nhibernate-ipreupdateeventlistener-amp-ipreinserteventlistener.aspx – mookid8000
Según la publicación de blog de Ayende, es necesario actualizar el objeto de la entidad (evt.Entity) Y el estado. –