Hola

Estoy tratando de trackear los cambios que se hacen sobre los valores de una
coleccion en una entidad.
El modelo es  mas o menos asi.

public class Equipment
{
        public ISet<EquipmentProperty> Properties {get; set;}
        //...
}

public class EquipmentProperty
{
        public Equipment Equipment {get; set;}
        public object Value {get; set;}
        //...
}

Especificamente quiero guardar en una tabla lo siguiente:

Equipo, Propiedad, Valor Anterior, Valor Actual, Fecha

Intente hacerlo con IPreUpdateEventListener que esta re bueno porque tiene
State y OldState pero resulta que como Properties es una coleccion el
listener PreUpdate no se activa al hacer cambios en la coleccion.
Hasta que llegue al IPreCollectionUpdateEventListener que efectivamente se
ejecuta antes de guardar la coleccion.
Ahora, no encuentro una forma de saber el "viejo" valor de la propiedad
Value de cada elemento de la coleccion.
Vi que  en OnPreUpdateCollection(PreCollectionUpdateEvent e) el evento tiene
informacion de la coleccion en un IPersistentCollection y que ese
persistentCollection tiene metodos GetSnapshot, etc pero todos me piden un
ICollectionPersister como parametro.
Ahi es donde no se que mas hacer.

Alguien me puede tirar una mano con esto?

Saludos


Jose Ramirez

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a