Hola buenas,

He creado una relación many to many sin mapear la tabla intermedia y
me funciona bien, pero lo que no me gusta es que dicha tabla tiene una
clave primaria compuesta, y yo preferiría que tuviera una PK bigint
con HILO y dos FKs con una restricción unique, más que nada para que
toda la base de datos siga el mismo diseño, ya que las demás tablas
tienen una PK bigint con HILO.

Mi mapeo ahora es este entre Libros y Autores:

Libro:

<hibernate-mapping default-cascade="all"
namespace="EjemploLibreria.Domain" assembly="EjemploLibreria.Domain"
xmlns="urn:nhibernate-mapping-2.2">
  <class name="Libro" table="`Libros`" schema="`dbo`">
    <id name="ID" access="property" column="`Id`">
      <generator class="hilo" />
    </id>
    <property name="Nombre" type="String" column="`Nombre`"
length="50" />
    <property name="NumPags" type="Int32" column="`NumPags`" />
    <set name="Autores" table="`LibrosAutores`" cascade="all">
      <key column="`IdLibro`" />
      <many-to-many class="Autor" column="`IdAutor`" />
    </set>
    </class>
</hibernate-mapping>

Autor:

<hibernate-mapping default-cascade="all"
namespace="EjemploLibreria.Domain" assembly="EjemploLibreria.Domain"
xmlns="urn:nhibernate-mapping-2.2">
  <class name="Autor" table="`Autores`" schema="`dbo`">
    <id name="ID" access="property" column="`Id`">
      <generator class="hilo" />
    </id>
    <property name="FechaNacimiento" column="`FechaNacimiento`" />
    <property name="Nombre" type="String" column="`Nombre`"
length="50" />
    <set name="Libros" table="`LibrosAutores`" cascade="all">
      <key column="`IdAutor`" />
      <many-to-many class="Libro" column="`IdLibro`" />
    </set>
  </class>
</hibernate-mapping>


Así funciona genial ¿Qué cambio debería hacer para que la tabla
intermedia pueda tener una PK con HILO?

Muchas gracias

-- 
Para escribir al Grupo, hágalo a esta dirección: 
NHibernate-Hispano@googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a