Uuuuuuuuh !! perdón ! No me dí cuenta que era composite !!! Sorry jeje.

Bueno amigo, creo q estás solo entonces.
Nunca trabajo por compuestas, por ese mismo motivo, y tampoco ví
alguien que lo haga, o sino es muy timido :)

En todo este tiempo de usar NHibernate arribé a que con:

-composite-id
-remoting
-webservices

...no es soplar y hacer botellas, te va a doler un poco la cabeza con
estos (mi opinión y expiencia personal).

Conclusión:

Hacé lo que te decían: Vas a tener que borrar primero el Hijo (pero
borrarlo con Delete).


On 1/31/07, Chili <[EMAIL PROTECTED]> wrote:
>
> La tabla Email (hija) tiene una FK a la tabla DatosPersonales, pero no
> puede ser null, pues forma parte de la clave primaria de la propia
> tabla Email. Es decir, mi tabla Email es así:
>
> ---------------------------------------
> |         Email                    |
> --------------------------------------
> | PK(email, idpersonales)  |
> | FK(idpersonales)            |
> ---------------------------------------
>
> idpersonales es clave primaria de la tabla DatosPersonales. Por tanto,
> no puede ser NULL. Esto quiere decir que tengo que hacer el delete
> individual del Email ya que la actualización de DatosPersonales
> necesita que las foreign keys puedan ser NULL para borrar los objetos
> perdidos?
>
> On 31 ene, 20:10, "Dario Quintana" <[EMAIL PROTECTED]>
> wrote:
> > Si, ningun problema:
> >
> >  public int Guardar(ActividadPlan entity)
> >         {
> >             if (IsValid(entity, Validate.Entity))
> >             {
> >                 try
> >                 {
> >                     _ActividadPlanData.BeginTransaction();
> >                     _ActividadPlanData.SaveOrUpdateObject(entity);
> >                     _ActividadPlanData.CommitTransaction();
> >                 }
> >                 catch (Exception ex)
> >                 {
> >                     _ActividadPlanData.RollBackTransaction();
> >                     throw ex;
> >                 }
> >             }
> >             return entity.IdActividadPlan;
> >         }
> >
> > Tambien adjunto la capa de abajo: ActividadPlanData, y referencia de
> > más abajo: BaseRepository, para que veas todo el camino. Y no hay nada
> > de distinto en lo que vos queres hacer.
> > Te fijaste si la columna de la tabla hija (en la FK) acepta null ?
> > Controlá nuevamente los mapping, como yo lo hice, funcionó.
> >
> > On 1/31/07, Chili <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> >
> >
> > > He estado mirando tu código, y básicamente es a lo que yo me refería.
> > > Borras un elemento de tu colección, y a continuación salvas tu clase
> > > padre (la actualizas) y el nhibernate se ocupa de todo. He visto algo
> > > en un mapping que no sé para qué sirve, a ver si me lo podrías
> > > explicar: unsaved-value="0".
> >
> > > Como no sé lo que estoy haciendo mal, ¿podrías pegar aquí tu método
> > > Guardar de ActividadPlanBL?
> >
> > > Saludos!
> >
> > > On 31 ene, 01:29, "Dario Quintana" <[EMAIL PROTECTED]>
> > > wrote:
> > > > Adjunto un pedazo de codigo, explico algo del codigo:
> >
> > > > Son 2 entidades:
> >
> > > > -ActividadPlan (padre)
> > > > -LaborActividadPlan (hija)
> >
> > > > tambien mando un ejemplo de form con la funcionalidad, para que vean
> > > > algo del código:
> >
> > > > - frmLaboresPorActividad.cs
> >
> > > > Bien lo que hago es asignar a "bsource" (que es un bindingsource) la
> > > > lista de las LaborActividadPlan. Cuando quiero eliminar un hijo, me
> > > > "paro" sobre el hijo y hago:
> > > > bsource.RemoveCurrent();
> >
> > > > y despues le doy Guardar:
> >
> > > > this.ActividadPlanBL.Guardar(this.ActividadPlan);
> >
> > > > Solamente guardo el padre, el hijo se borra solo, NHibernate se dá
> > > > cuenta solito y lo elimina.
> >
> > > > Tambien adjunto los mapping para que vean.
> >
> > > > Ahora despues la seguimos...ahora tengo que salir..nos vemos gente
> >
> > > > On 1/30/07, Ezequiel Jadib <[EMAIL PROTECTED]> wrote:
> >
> > > > > si al elemento que eliminas en la lista no le haces un delete no te 
> > > > > va a
> > > > > funcionar
> > > > >  ________________________________
> >
> > > > > rdi2k | Ezequiel Jadib | MSN: [EMAIL PROTECTED] | Blogs:
> > > > >http://geeks.ms/blogs/ejadib/(ES) - ejadib.wordpress.com (EN)
> >
> > > > > ----- Original Message -----
> > > > > From: Chili
> > > > > To: NHibernate-Hispano
> > > > > Sent: Tuesday, January 30, 2007 7:42 PM
> > > > > Subject: [NHibernate-Hispano] Re: Problemas con un update
> >
> > > > > Lo que me dices es lo que intentaba hacer, es decir, elimino el
> > > > > elemento de la lista en memoria, luego hago el update de la persona, y
> > > > > ahí es donde me da error, por lo que ya no puedo seguir.
> >
> > > > > On 30 ene, 22:45, "Andrés G. Aragoneses [ knocte ]" <[EMAIL 
> > > > > PROTECTED]>
> > > > > wrote:
> > > > > > Chili escribió:
> >
> > > > > > > Eso de hacer el delete de la propia entidad ya tiene más sentido 
> > > > > > > :).
> > > > > > > No obstante, como yo también soy un principiante, me gustaría que
> > > > > > > alguien que estuviese más ducho me dijera si es necesario.
> >
> > > > > > > En cuanto a lo del inverse=true, es necesario? Lo digo porque yo 
> > > > > > > no
> > > > > > > necesito tener ninguna referencia desde EmailDA a 
> > > > > > > DatosPersonalesDA, y
> > > > > > > según tengo entendido, inverse=true, es que puedes dar la vuelta, 
> > > > > > > es
> > > > > > > decir:
> >
> > > > > > >  Persona 1 - n Direcciones
> >
> > > > > > >  Persona.Direcciones[0].Persona
> >
> > > > > > Opino lo mismo que tú, que el inverse="true" sólo es necesario
> > > > > > especificarlo en los casos en los que tienes acceso desde los dos
> > > > > > sentidos de la colección, y sólo en uno de los extremos.
> >
> > > > > > Lo que yo haría es hacer dos cosas: eliminar el elemento de la 
> > > > > > lista,
> > > > > > hacer SaveOrUpdate en Persona, y luego eliminar con Delete la 
> > > > > > dirección
> > > > > > propiamente dicha, y luego Flush.
> >
> > > > > >         Andrés [ knocte ]
> >
> > > > > > --
> >
> > > > --
> > > > Dario Quintanahttp://blog.darioquintana.com.ar
> >
> > > >  codigo.zip
> > > > 8 KDescargar
> >
> > --
> > Dario Quintanahttp://blog.darioquintana.com.ar
> >
> >  codigo2.ZIP
> > 5 KDescargar
>
>
> >
>


-- 
Dario Quintana
http://blog.darioquintana.com.ar

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