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

Responder a