Guillermo Ruffino escribió: > > Si estas editando una lista de Personas y le dejas al usuario hacer > Add / Remove / Delete, como le haces el seguimiento a los objetos > después para llamar al Save, Update o Delete a cada Entidad? > > Si entendí bien lo que tenes en este momento es una collection transactional o sea que nada persiste hasta que el usuario no haga el Save de la collection. De ser así podes agregar algunas propiedades a tus obs; algo tipo IsDirty, IsNew IsDeleted. Para el IsDirty, si trabajas con entidades versionada (me refiero al version de NH) a session abierta, podes preguntarle a NH si la entidad está sucia o no (si es dirty). Si no quieres usar NH, y tampoco te gustan los proxies, podes tener una tu propiedad y ocuparte de manejarla en el set de cada propiedad. Para el New podes usar la misma tecnica de NH o sea veridicas que el Id sea != de default(IdType) (por ejemplo si el type del Id es Int32 la etidad es New si Id==0 ). Si no quieres usar NH para podes tener una propiedad tuya asignada a true en el ctor y a false en el save (con manejo de exceptions...obvio). Para el Deleted no te queda otra cosa que gestionarlo con la propiedad IsDeleted o sacarlo de la "lista publica" y guardarlo en una lista privada de obj borrados. Esta forma de trabajar sirve sea para lista sin parent que para lista con parent (los items de una factura por ejemplo).
Lo de tener una lista de entidades por cada "tipo de dirty" (nuevas,modificadas,borradas) está bueno para minimizar la serialización pero se te complica un poco cuando se trata de child por lo que puede llegar a pasar con la concurrencia. Bye. Fabio. --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups-beta.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
