Hola,

Aun persiste el error del punto 4).  Estas mapeando PC->Videos con la llave
primaria de Videos.

Saludos

2011/6/23 Juan Francisco <[email protected]>

> Hola, y en primer lugar gracias por tu ayuda.
>
> Tienes razón, quería hacer un mapeo de muchos a muchos, pero luego me
> aparecieron más campos a añadir a esa entidad intermedia, así que decidí
> mapearla también.
>
> La captura que he puesto era del diagrama de tablas de sql server. Y esta
> es una imagen del diagrama de clases que tengo:
>
> http://img845.imageshack.us/**img845/2892/23062011213613.png<http://img845.imageshack.us/img845/2892/23062011213613.png>
>
> También he utilizado el SchemaValidator como me indicaste, y me aparecieron
> un par de errores que ya he corregido. Ahora los mapeos son estos:
>
>
> <class name="C" table="C" lazy="false">
> <id column="Id" type="int" unsaved-value="0">
> <generator class="identity"></generator>
> </id>
> <property name="Numero" length="20" type="string" not-null="true"
> unique="true"></property>
> <property name="Duracion" type="int" not-null="true"></property>
> <property name="FechaInicio" type="DateTime" not-null="true"></property>
> <property name="FechaFin" type="DateTime" not-null="true"></property>
> <property name="Activo" type="bool"></property>
> <many-to-one name="Cliente" column="ClienteId"
> class="Cliente"></many-to-one>
> <bag name="PC" table="PC" inverse="true">
>
> <key column="CId"></key>
> <one-to-many class="PC"></one-to-many>
> </bag>
> </class>
>
> <class name="P" table="P" lazy="false">
> <id column="Id" type="int" unsaved-value="0">
> <generator class="identity"></generator>
> </id>
> <property name="Nombre" length="50" type="string" not-null="true"
> unique="true"></property>
> <bag name="PC" table="PC" inverse="true">
> <key column="PId"></key>
> <one-to-many class="PC"></one-to-many>
> </bag>
> </class>
>
> <class name="PC" table="PC" lazy="false">
> <id column="Id" type="int" unsaved-value="0">
> <generator class="identity"></generator>
> </id>
> <many-to-one name="C" column="CId" class="C"></many-to-one>
> <many-to-one name="P" column="PId" class="P"></many-to-one>
> <property name="Duracion" type="int" not-null="true"></property>
> <bag name="V" table="Videos">
> <key column="Id"></key>
>
> <one-to-many class="V"></one-to-many>
> </bag>
> </class>
>
> <class name="V" table="Videos" lazy="false">
> <id column="Id" type="int" unsaved-value="0">
> <generator class="identity"></generator>
> </id>
> <property name="Nombre" length="75" type="string"
> not-null="true"></property>
> <property name="Ruta" length="150" type="string"
> not-null="true"></property>
> <many-to-one name="C" column="CId" lazy="false"></many-to-one>
> <many-to-one name="PC" column="PCId" class="PC"></many-to-one>
> </class>
>
> Pero me sigue apareciendo el error "Found shared references to a
> collection: VS.NH.C.PC".
>
> Un saludo.
>
> El 23/06/2011 17:06, Nestor Andres Rodriguez escribió:
>
>
>> Hola,
>>
>> 1) No existe un mapeo de muchos a muchos.  PC esta mapeado como una
>> "entidad" y no como una tabla para guardar la relacion de las entidades P y
>> C.
>>
>> 2) En la tabla Videos no tienes la columna CID.
>>
>> 3) No existe la columna VID en en la tabla Videos.
>>
>> 4) Creeria que el <key column="VID"> en el mapeo de PC->Videos deberia ser
>> <key column="PCID">, creeria que alli es donde tienes el problema porque
>> quizas estas utilizando VID como llave principal para Videos y como Llave
>> foranea para la coleccion PC->Videos
>>
>> 5) Estas haciendo un mapeo one-to-many bidireccional entre C->PC asi que
>> el inverse ="true" haria falta en C->PC.
>>
>> 6) Tienes una relacion bidireccional entre PC y videos.  Faltaria el
>> Inverse="true" en la coleccion PC->Videos
>>
>> -Estas seguro que enviaste el disenio de base de datos correcto?
>> - Utiliza el SchemaExport para generar tu base de datos y que no se
>> presenten tantas inconsistencias.
>> - O Utiliza un SchemaValidator para validar tu base de datos con respecto
>> al mapeo.
>> -Quizas podrias modificar tu disenio para no tener las entidades tan
>> acopladas unas a otras.
>> -Si tienes un disenio en terminos de clases podria ayudar a validar mejor
>> tu mapeo.
>>
>> Saludos,
>> Nestor Andres Rodriguez
>>
>>
> --
> Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano@**
> googlegroups.com <[email protected]>
> Para más, visite: 
> http://groups.google.com/**group/NHibernate-Hispano<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