Hola mouthbow:

Me parece que asi te deberia andar:
  <class name="ViewListadoFacturas">
    <id type="Guid">
      <generator class="guid" />
    </id>
    <property name="CodigoFactura" />
    <property name="CodigoCliente" />
    <set name="NotasElementosList">
      <key column="CodigoElementoAsociado" />
      <one-to-many class="NotasElementos" />
    </set>
  </class>

    public class ViewListadoFacturas
    {
        public virtual Guid CodigoFactura { get; set; }

        public virtual Guid CodigoCliente { get; set; }

        public virtual ISet<NotasElementos> NotasElementosList { get; set; }
    }


El jueves, 4 de octubre de 2012 10:54:51 UTC-3, mouthbow escribió:
>
> 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