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
