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

Responder a