Me refieron a algo como:

p1.Direccion = new Direccion {Persona = p1, Calle = p2.Calle, Ciudad =
p2.Ciudad}

si querés mandalo en un test que lo miro.

saludos.
nelo


2011/11/17 Dennis Alba <[email protected]>:
> A ver, la solucion definitivamente tiene que ser la 1ra, pues estamos
> trabajando con el objetivo de sacar toda la logica de negocio de la
> BD, lo que no entiendo es como enfocas la 1ra opcion, pues lo que hago
> es presisamente eso, hagos las reasignaciones primero, luego eliminos
> las relaciones que no se reasignan sino que dejan de
> exisistir(oreonomb y lugarnac) y por ultimo elimino la persona en
> cuestion, esto es lo ultimo que hago pues de lo contrario me da el
> error de referencia pues no puedo borrar a una persona cuando todavia
> hay clases que le hacen referencia, a que te refieres con lo de borrar
> en cascada???
>
> El 17/11/11, [email protected] <[email protected]> escribió:
>> Hola Banzai,
>>
>> se me ocurren dos ideas:
>> 1. Si esto es algo frecuente, creo que lo pensaría "como un proceso
>> que agregue o combine en p2 los datos de p1 y luego borre p1 en
>> cascada". Sería una solución mas orientada a objetos.
>>
>> 2. Si es algo que pasó y ahora tenés mecanismos de controles para que
>> no vuelva a pasar, lo haría con un script en la db. Sería una solución
>> mas orientada a datos.
>>
>> saludos.
>> nelo
>>
>>
>> 2011/11/17 Banzai <[email protected]>:
>>> Disculpen que no haya respondido antes, pero no estaba viniendo a la
>>> oficina,
>>> mira el problema es el siguiente: Remontense a las clases que puse al
>>> principio
>>> La situacion problemica es que yo puedo llegar a tener dos personas
>>> insertadas en el sistema p1 y p2, y en un momento determinado me
>>> percato que los dos son la misma persona, entonces deseo pasar todas
>>> las solicitudes,direcciones, fotos, lugar de nacimiento que eran de la
>>> p1 a la p2. para ello hago el siguiente algoritmo
>>>
>>> en OtroNombre  hay dos objetos persona (p1cuyo id es 49 y p2 cuyo id
>>> es 65) mas un campo que explica porque estaban como si fueran
>>> diferentes
>>>
>>> ITransaction transaction = MainClass.m_session.BeginTransaction();
>>>
>>> - metodo que reasigna la foto de p1 a p2
>>>
>>> - metodo que reasigna direccion de p1 a p2
>>>
>>> - metodo que reasigna solicitud de p1 a p2
>>>
>>> - metodo que elimina LugarNac de p1
>>>
>>> - metodo que elimina OtroNomb donde esta p1 y p2
>>>
>>> - metodo que elimina Persona p1
>>>
>>> transaction.Commit();
>>>
>>> ninguno de estos metodos hace commit adentro solo salvan en la sesion
>>> de NHibernate, estos son los ejemplos:
>>> reasignar : MainClass.m_session.Merge(direccion);
>>> eliminar: MainClass.m_session.Delete(lugarnac);
>>>
>>> todos los metodos funcionan menos el ultimo que elimina la persona el
>>> cual me da el siguiente error:
>>> a different object with the same identifier value was already
>>> associated with the session: 49, of entity: Proyecto.Persona
>>>
>>> Alguien sabe que significa este mensaje????
>>>
>>> --
>>> 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
>
> --
> 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