Muy bien como se resolvió con los DTO.

El problema es que si es una entity compleja tendrá el problema del Select
N + 1 a menos que deshabilites el lazy en la definicion de tus DTO.
A mi parecer es mejor utilizar un HQL o QueryOver o la que desees por
ejemplo
este query llena una entidad "orden" utilizando un solo query

[Test]

public void Can_eagerly_load_order_aggregate_with_hql_query()

{

    Order fromDb;

    using (ISession session = SessionFactory.OpenSession())

    {

        string sql = "from Order o" +

                     " inner join fetch o.OrderLines" +

                     " inner join fetch o.Customer" +

                     " where o.Id=:id";

        fromDb = session.CreateQuery(sql)

                        .SetGuid("id", _order.Id)

                        .UniqueResult<Order>();

    }

    Assert.IsTrue(NHibernateUtil.IsInitialized(fromDb.Customer));

    Assert.IsTrue(NHibernateUtil.IsInitialized(fromDb.OrderLines));

}


El articulo completo puedes revisarlo aqui
http://nhforge.org/wikis/howtonh/lazy-loading-eager-loading.aspx

Saludos






El 19 de diciembre de 2012 13:04, Carlos Bustos <[email protected]
> escribió:

> Hola.
> El problema que estas teniendo es porque tus grafos tiene relaciones
> bidireccionales. Por ej. Si tenes una Factura y sus lineas tendrias algo asi
>
> public class Factura {
>    public IList<FacturaLinea> Lineas {get;set;}
> }
>
> public class FacturaLinea {
> public Factura Factura {get;set;}
> public single Precio {get;set;}
> }
>
> Con eso podes navegar desde Factura a sus lineas y desde las lineas podes
> acceder a la factura.
> Lo que yo hice fue cortar la relacion bidireccional y dejar algo asi:
>
> public class FacturaDTO {
>    public IList<FacturaLineaDTO> Lineas {get;set;}
> }
>
> public class FacturaLineaDTO {
> public single Precio {get;set;}
> }
>
> Con esto podes navegar solo desde FacturaDTO hacia FacturaLineaDTO. 
> FacturaLineaDTO
> no tiene una referencia a FacturaDTO .
> De esta manera WCF no tiene problemas para serializar los objetos
>
> No se si es la mejor manera, pero asi lo hice yo.
>
> Saludos
>
>
> by Carlos Bustos
>   ------------------------------
> *From:* Luciano <[email protected]>
> *To:* [email protected]
> *Cc:* Carlos Bustos <[email protected]>;
> [email protected]
> *Sent:* Wednesday, December 19, 2012 10:33 AM
> *Subject:* Re: [NHibernate-Hispano] NHibernate + WCF + Relación
> Bidireccional
>
> Hola de nuevo yo :S
>
> Estuve buscando por todos lados como implementar los DTO para solucionar
> el problema de la redundancia cíclica y no pude dar con la solución.
>
> Me podrías explicar como encarar el problema?
>
> Gracias
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
>
>   --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>

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