No es eso Juan José, muchas gracias de todas formas.

Sigo con el problema. Yo pensé que era algo del mapping porque si
condiciono solamente por atributos de la cabecera anda perfecto, el tema
está cuando creo el Criteria del detalle.

Saludos y gracias!

El mié., 14 sept. 2016 a las 17:14, Juan José Montes de Oca Arbós (<
juanjose.montesdeocaar...@gmail.com>) escribió:

> Hola Cesar, no estoy 100% seguro, pero se me ocurre que si no tenés
> implementados los métodos de Equals y GetHashCode (o los tenés mal
> implementados) NHibernate podría devolverte dos objetos que para vos son
> iguales, pero para NH son diferentes. Se que esto ocurre cuando manejas los
> objetos en memoria, pero no se si ocurre en el caso de consultarlos a la
> base de datos.
>
> Saludos Y ÉXITOS!!
>
> --
> Juan José Montes de Oca Arbós.
>
> ===========================
> Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/
>
> El 14 de septiembre de 2016, 17:05, César Pistiner <chpisti...@gmail.com>
> escribió:
>
>> Hola gente,
>>
>> Estoy teniendo un problema y no le encuentro la vuelta. Usando NHibernate
>> con Criteria Queries tengo una entidad que es cabecera-detalle y cuando
>> obtengo una lista en la cual debo condicionar el detalle me trae un objeto
>> (cabecera) por cada detalle que tenga. El ejemplo sería así, basado en
>> movimientos de stock:
>>
>> Tengo 2 movimientos:
>> - MOVIMIENTO 1
>> - MOVIMIENTO 2
>>
>> Detalle de MOVIMIENTO 1:
>> - PRODUCTO A - ENTRADA x 10 - POSICION 001
>> - PRODUCTO A - ENTRADA x 20 - POSICION 002
>>
>> Detalle de MOVIMIENTO 1:
>> - PRODUCTO B - ENTRADA x 10 - POSICION 001
>> - PRODUCTO B - ENTRADA x 20 - POSICION 002
>>
>> Si obtengo una lista condicionando los movimientos con PRODUCTO A, estoy
>> recibiendo una lista que contiene 2 cabeceras, con 2 detalles cada una. Si
>> inspeccionó dicha lista veo que es el mismo movimiento (MOVIMIENTO 1)
>> duplicado.
>>
>> Ese es el problema, el cual estoy resolviendo con agrupación luego de
>> obtener la lista.
>>
>> El mapping contra los detalles lo tengo así:
>>
>> CABECERA
>> <bag name="Detalles" table="DetalleMovimiento" inverse="true"
>> cascade="all,delete-orphan" lazy="true">
>>   <key column="IdMovimiento"/>
>>   <one-to-many class="DetalleMovimiento"/>
>> </bag>
>>
>> DETALLE
>> <many-to-one name="Movimiento" column="IdMovimiento" class="Movimiento"
>> foreign-key="FK_DetalleMovimiento_Movimiento"/>
>>
>> Luego a través de Criteria Queries lo que hago es:
>>
>> nhCriteria = nhCriteria.CreateCriteria("Detalles",
>> NHibernate.SqlCommand.JoinType.InnerJoin);
>>
>> nhCriteria.Add(Restrictions.Eq("Producto", productoAFiltrar));
>>
>> Eso es todo (creo), agradezco cualquier sugerencia o ayuda, tal vez es un
>> error común, las soluciones que encontré navegando no me dieron resultado.
>>
>> Espero haber sido claro y desde ya agradezco el tiempo robado!
>>
>> Aprovecho para saludarlos y agradecer todos los aportes que hacen.
>> César
>>
> --
>> --
>> 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
>> ---
>> Has recibido este mensaje porque estás suscrito al grupo
>> "NHibernate-Hispano" de Grupos de Google.
>> Para anular la suscripción a este grupo y dejar de recibir sus mensajes,
>> envía un correo electrónico a
>> nhibernate-hispano+unsubscr...@googlegroups.com.
>> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>>
>
> --
> --
> 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
> ---
> Has recibido este mensaje porque estás suscrito al grupo
> "NHibernate-Hispano" de Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus mensajes,
> envía un correo electrónico a
> nhibernate-hispano+unsubscr...@googlegroups.com.
> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>

-- 
-- 
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
--- 
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" 
de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía 
un correo electrónico a nhibernate-hispano+unsubscr...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Responder a