2012/3/22 Gonzalo del Castillo <[email protected]>

> Buenas tardes gente, me llamo Gonzalo y soy nuevo en el grupo. Estoy
> incursionando en los ORM, y me decidi por aprender NHibernate.
> En particular los molesto por un problema que tengo, estoy tratando de
> realizar el mapping de dos clases : Equipo y Campeonato.
> La idea es que desde Campeonato tenga un ISet de Equipos, sin tener que
> definir la vuelta (un ISet de Campeonatos).
> Si bien pude definir los mapeos, no se como definir la restricción que el
> nombre del equipo y el campeonato son unicos, al menos no sin caer en una
> relación bi-direccional.
>
> Desde ya muchas gracias por su tiempo.
>
> Saludos,
>
> Gonzalo.
>
>     public class Equipo : DomainEntity
>     {
>      ....
>         public virtual string Nombre { get; protected set; }
>     }
>
>
> public class Campeonato: DomainEntity
>     {
>      ....
>         public virtual string Nombre { get; protected set; }
>
>         public virtual Iesi.Collections.Generic.ISet<Equipo> Equipos {
> get; set; }
>     }
>
> Y los hbm.xml que hice :
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>     assembly="..."   namespace="...">
>   <class name="Campeonato">
>     <id name="Id">
>       <generator class="guid.comb" />
>     </id>
>     <natural-id mutable="true">
>       <property name="Nombre" not-null="true" />
>     </natural-id>
>
>     <version name="Version" />
>
>     <set name="Equipos" cascade="all-delete-orphan" inverse="true">
>       <key column="CampeonatoId"/>
>       <one-to-many class="Equipo"/>
>     </set>
> </hibernate-mapping>
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>     assembly="..."    namespace="...">
>   <class name="Equipo">
>     <id name="Id">
>       <generator class="guid.comb" />
>     </id>
>     <version name="Version" />
>     <property name="Nombre" not-null="true"/>
>   </class>
> </hibernate-mapping>
>
> Ya lo pude resolver, al final termine cambiando el archivo
Campeonato.hbm.xml

    <set name="Equipos" table="CampeonatosEquipos" cascade="all">
      <key column="CampeonatoId"/>
      <many-to-many column="EquipoId" class="Equipo"/>
    </set>

Saludos,

Gonzalo.

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