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 2011/6/23 Juan Francisco <[email protected]> > Hola, qué tal. Estoy haciendo un proyecto con NHibernate 3 y tengo un > problema con uno de mis mapeos. > > Tengo una relación many-to-many entre dos tablas, con lo cual he agregado > una nueva tabla intermedia, con su mapeo correspondiente, y que contiene los > Id de cada una de ambas tablas y también tiene una relación one-to-many con > otra tabla. > > Este es el diagrama que tengo: > > http://img842.imageshack.us/**img842/1609/23062011104035.png<http://img842.imageshack.us/img842/1609/23062011104035.png> > > Mis 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="false"> > <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="VId"></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 resulta algo anda mal porque me aparece el siguiente error: > > "Found shared references to a collection: VS.NH.C.PC" > > ¿Por qué puede estar pasando esto? > Muchas gracias. > > -- > 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
