many - nhibernate sessionfactory connection string
nHibernate 2.0: mapear una relación de identificación compuesta*y*de varios a uno provoca un error de "índice no válido" (1)
Kay, aquí está la respuesta. Poco o nada de documentación sobre esto:
<composite-id name="PersonTagKey" class="PersonTagKey">
<key-many-to-one name="Person" column="PersonId" lazy="proxy" class="Person">
<key-many-to-one name="Tag" column="TagId" lazy="proxy" class="Tag"/>
</composite-id>
Esto le permitirá crear una identificación compuesta compuesta de la inversa de una relación muchos a uno.
Buena caza...
Tengo un problema. Imagina este modelo de datos:
[Person] table has: PersonId, Name1
[Tag] table has: TagId, TagDescription
[PersonTag] has: PersonId, TagId, IsActive
Dado que [PersonTag]
no es simplemente una tabla simple de muchos a muchos, tengo las tres entidades creadas en nHibernate (exactamente como están en el modelo de datos). PersonTag
, por lo tanto, necesita una identificación compuesta, que he asignado a una clase como esta:
<composite-id name="PersonTagKey" class="PersonTagKey">
<key-property name="PersonId"></key-property>
<key-property name="TagId"></key-property>
</composite-id>
Quiero atravesar el gráfico del objeto y ser capaz de mirar los objetos Person
y Tag
desde un objeto PersonTag
recuperado. Entonces, tengo propiedades en el objeto PersonTag
para hacer eso, mapeado así:
<many-to-one name="Person" column="PersonId" lazy="proxy" cascade="none" class="Person"/>
<many-to-one name="Tag" column="TagId" lazy="proxy" cascade="none" class="Tag"/>
Cuando trato de crear un objeto PersonTag
y guardarlo, aparece el error "Índice n no válido para este SqlParameterCollection with Count = n" . Sé que esto se debe a que he mapeado las propiedades PersonId
y TagId
dos veces, una para la identificación compuesta y una para la relación de muchos a uno. Si no mapeo los objetos muchos a uno, todo funciona bien.
¿Hay alguna forma de que yo pueda tener una identificación compuesta Y una relación de muchos a uno basada en la misma columna modelada en la misma entidad nHibernate?