Carlos, estoy usando algo asi donde _session es global y aplico
NHibernateSessionFactory.OpenSession() en el constructor.
En principio funciona, ahora voy a ver que pasa cuando traslade este tema de
parent-child a la aplicacion real.
Si se me complica aviso :)
Saludos,
Raul.
Carlos Peix escribió:
> Hola Raul,
>
> Normalmente no uso winforms pero por ahí este patron podria funcionarte:
>
> using ( ITransaction tx = _session.BeginTransaction() )
> {
> // Aquí haces todas tus actualizaciones
>
> tx.Commit();
> }
>
> Donde _seesion es la variable de instancia del form, ahí tenes la sesion
> abierta y tenes un scope bien limitado para la transaccion.
>
> En cuanto a esto:
>> - Estas agregando LA MISMA INSTANCIA de chuild a todos los parents, me
>> parece que eso no es lo que queres hacer.
> a los efectos de la prueba me parecio que no era relevante, pero...
>
> [Carlos] Creo que es muy relevante porque en el Child tenes una referencia
> al parent, lo cual invalida que un child pueda pertenecer a varios parents.
> Incluso diria que este es el motico por el cual te quedaba un child asociado
> a un solo parent (el ultimo), supondiendo que estuvieras haciendo la
> referencia al parent, cosa que no se ve en tu codigo.
>
>
> Suerte
>
> Carlos Peix
>
> -----Mensaje original-----
> De: [email protected]
> [mailto:[email protected]] En nombre de Raul Lopez
> Enviado el: Lunes, 12 de Enero de 2009 11:44 a.m.
> Para: [email protected]
> Asunto: [NHibernate-Hispano] Re: ayuda con coleccion
>
>
> Hola Carlos, en efecto habia varias cosas mal (lo copie correctamente al
> mail). Probe con tu codigo y funciona.
> Te comento conclusiones entre lineas:
>
> Carlos Peix escribió:
>> Hola Raul,
>>
>> Hay varias cosas en tu ejemplo que no estan bien, no se si porque lo
>> copiaste incorrectamente al mail o porque estan definitivamente mal.
>> Te pido que reescribas tu codigo de esta manera (y que cambies lo que
>> corresponda siempre y cuando entiendas los motivos). Estos son los
>> puntos que no me cierran
>>
>> - No queda claro el scope de la variable _session.
> es global para todo el form
>
>> - Estas agregando LA MISMA INSTANCIA de chuild a todos los parents, me
>> parece que eso no es lo que queres hacer.
> a los efectos de la prueba me parecio que no era relevante, pero...
>
>> - Veo una propiedad Parent en el child que no estas seteando en el
>> codigo que enviaste.
> fue omision, no lo vi
>
>> - Estas haciendo un update con cada parent, esto no seria necesaro,
>> incluso no es necesario hacer ninguno con la opcion de cascade que tenes.
> de acuerdo, esta de mas
>
>> // Aca achicas mucho mas el scope de session, el metodo //
>> CreateSession() depende de cómo manejes e sessionFactory // pero
>> deberia ser una sesion nueva puesto que estas haciendo // el Dispose
>> al salir del using(), esa sesion no servira para // nada mas.
>
> aca no hay problema, pero en el programa real se me complica si no hago la
> sesion global (tengo lio con el lazy) Voy a estudiar mas sobre el tema del
> manejo de las sesiones.
>
> Muchas gracias una vez mas.
>
> Saludos,
> Raul.
>
>
>
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---