Buenas tardes a tod@s!

Tengo una pregunta que creo que lo mismo es básica pero no encuentro forma 
de hacer:

Necesito definir un set en un archivo de mapping con unas necesidades 
especiales. He leído varias páginas pero no encuentro nada.
Supongamos que tengo un mapping de una Vista SQL


<class name="Namespace.ViewListadoFacturas, Assembly" 
table="ViewListadoFacturas">

<id name="CodigoFactura" column="[CodigoFactura]" type="System.Guid">
<generator class="assigned"/>
</id>
<property name="CodigoCliente" column="[CodigoCliente]" 
access="field.pascalcase-underscore" not-null="true" type="System.Guid"/>

</class>


Y supongamos que luego un mapping de una clase como este: 


<class name="Namespace.NotasElementos, MyAssembly" table="NotasElementos" >

<id name="Id" column="CodigoNota" type="System.Guid"><generator 
class="guid"/></id>
<property name="CodigoElementoAsociado" column="CodigoElementoAsociado" 
access="field.pascalcase-underscore" not-null="false" type="System.Guid" 
insert="true" update="true"/>

</class>


Donde CodigoCliente de la Vista y CodigoElemento asociado guardan los 
mismos valores y por tanto podríamos hacer un inner join entre ellos pero 
se llaman diferente.
El nombre es diferente porque en la clase NotasElementos también guardo 
Notas de Proveedores, Usuarios, etc... De ahí sale el concepto de 
CodigoElementoAsociado.

Al usar Guids evito que dos elementos de clases diferentes compartan ids.

La pregunta es:

¿Como puedo mapear las notas del cliente en la vista? Yo necesito hacer 
algo así:



<set name="NotasElementosList" cascade="none" inverse="true" lazy="true" 
access="field.pascalcase-underscore">
<Source key>
<column name="CodigoCliente" />
</Source key>
<Target key>
<column name="CodigoElementoAsociado"/>
</Target key>
<one-to-many class="MyNamespace.NotasElementos, GIOFACT_DAL"/>
</set>


¿Es posible hacer esto? La verdad es que esto solucionaría una gran parte 
de las necesidades que tengo pendientes.

Ni que decir que agradezco enormemente por adelantado cualquier ayuda que 
pueda recibir.

Un saludo.

-- 
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