Hola de nuevo, ¿De verdad a nadie se le ocurre cómo podría hacer esto? ¿O lo estoy enfocando mal?
;) On 11 sep, 10:25, "David Siñuela Pastor (Siu)" <[EMAIL PROTECTED]> wrote: > Hola, > > Saludos a todos, es mi primera vez en la lista ;) > > Tengo una duda sobre una relación de uno a uno. Tengo dos clases, > Actividad y Evento, las cuales pueden tenter una referencia de tipo > uno a uno. Están relacionadas con una relación one-to-one y una many- > to-one porque quiero que sean independientes cuando no existe la > relación (si pongo one-to-one depende del identificador de la otra > clase, si no me equivoco). > > Luego, en la base de datos, tengo una columna EventoId en la tabla de > actividades, para poder relacionarlas. > > Lo que intento hacer es borrar un objeto de tipo Evento, el código > importante es este: > > ... > int id = Convert.ToInt32(e.CommandArgument); > > Evento n = SessionHolder.Current.Load<Evento>(id); > SessionHolder.Current.Delete(n); > > t.Commit(); > ... > > Lo cual produce una excepción al dejar en la columna EventoId de > Actividades la referencia a una Actividad que ya no existe. He pensado > que puedo hacer esto antes de borrar: > > if (n.Actividad != null) n.Actividad.Evento = null; > n.Actividad = null; > > Pero no me parece una buena solución, debería poder indicarlo en las > propiedades de NHibernate. > > He estado probando con los valores de cascade y leyendo un motón de > documentación y foros y no he conseguido encontrar ninguna información > al respecto. > > ¿Alguna idea? > > Gracias! > > Los ficheros de mapping son estos: > > ---- > > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > namespace="Ajualcoi.org.CentreEsports.Entidades" > assembly="Ajualcoi.org.CentreEsports" > > <class name="Actividad" table="centreesports_actividades"> > > <id name="Id" type="Int32"> > <generator class="native" /> > </id> > > <property name="Nombre" type="String" length="250" > not- > null="true" /> > <property name="Descripcion" type="String" > length="4096" not- > null="true" /> > <many-to-one name="Categoria" class="CategoriaActividad" > column="CategoriaId" /> > > <many-to-one name="Evento" class="Evento" column="EventoId" > unique="true"/> > > </class> > </hibernate-mapping> > > ---- > > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > namespace="Ajualcoi.org.CentreEsports.Entidades" > assembly="Ajualcoi.org.CentreEsports" > > <class name="Evento" table="centreesports_eventos"> > > <id name="Id" type="Int32"> > <generator class="native" /> > </id> > > <property name="FechaInicio" type="DateTime" not- > null="true" index="IX_eventos" /> > <property name="FechaFin" type="DateTime" not- > null="true" index="IX_eventos" /> > <property name="Hora" type="DateTime" > column="HoraInicio" /> > <property name="DiaCompleto" type="Boolean" > column="DiaCompleto" /> > <property name="Nombre" type="String" > length="150" not-null="true" /> > <property name="Lugar" type="String" length="250" /> > > <property name="Resumen" type="String" > length="4096" not-null="true" /> > <property name="Texto" type="String" > length="4096" /> > <one-to-one name="Actividad" class="Actividad" property- > ref="Evento"/> > > </class> > </hibernate-mapping> > > ---- --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups-beta.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
