estoy revisar y volver a implementar el código que me hizo pido this question acerca de la auditoría de datos en NHibernate. Sin embargo esta vez, quiero ir con Sean Carpenter 's suggestion e implementar el ISaveOrUpdateEventListener (nuevo en NHibernate 2.x)datos de auditoría en NHibernate usando eventos
Quiero añadir una fila en una base de datos para cada cambio de cada propiedad con el valor antiguo y el nuevo por lo que más adelante en la interfaz de usuario que puedo decir cosas como "usuario Bob cambió la propiedad de Wibble de a a B el 9 de marzo de 2009 a las 21:04"
¿Cuál es la mejor manera de comparar el estado del objeto de averiguar qué de las propiedades del objeto han cambiado?
que pueda obtener el estado de carga del objeto por el siguiente texto:
public void OnSaveOrUpdate(SaveOrUpdateEvent saveOrUpdateEvent)
{
object[] foo = saveOrUpdateEvent.Entry.LoadedState;
}
Y supongo que podría utilizar la reflexión para averiguar qué propiedades han cambiado, pero yo he estado cavando alrededor y no doesn' Parece ser un conjunto de propiedades que se combinan para comparar. Hubiera pensado que habría un método GetChangedProperties() o algo así.
siempre podía obtener el objeto de edad, de la base de datos tal como es y compararlo, pero eso es otra base de datos de golpear y parecería mano dura en este escenario.
Cuál es la mejor dirección a seguir con esto?
P.S. En caso de que haga alguna diferencia, este es un proyecto de arquitectura ASP.NET-MVC/S # arp.
Esto funcionó para mí. Gracias mookid. –
Gracias por "y obtener el nombre de la propiedad modificada de 'nombres'". Estuve en la red durante 15 minutos buscando una manera confiable de unir el objeto a los valores. – SamuelKDavis