Gracias por los links,
El de Ayende ya lo habia leido pero el otro no.

Te cuento que termine usando el IPreCollectionUpdateEventListener y como no
pude obtener el snapshot de la entidad termine levantando en otra session la
misma entidad y haciendo una consulta linq to objects para obtener las
propiedades que se modificaron.
No quedo "elegante" pero esta andando.

saludos

Jose

2009/12/18 Juan <[email protected]>

> Aqui va otro que puede que te ayude...
>
> http://darrell.mozingo.net/2009/08/31/auditing-with-nhibernate-listeners/
>
>
>
> On Dec 17, 12:00 pm, Jose Ramirez <[email protected]> wrote:
> > 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
>

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