6

Foo tiene el título.
referencias de barras Foo. Tengo una colección con barras.
Necesito una colección con Foo.Title.Seleccione n + 1 problema

Si tengo 10 barras en la colección, llamaré a db 10 veces.

bars.Select (x => x.Foo.Title)

En el momento presente (utilizando NHibernate y LINQ i no quieren soltarlo) recupera la colección bar.

var q = from b in Session.Linq<Bar>() 
       where ... 
       select b; 

He leído lo que Ayende dice about this.
Otro relacionado question.
Un poco de documentation.
Y otra relacionada blog post.
Tal vez this puede ayudar?
¿Qué hay de this?
¿Tal vez MultiQuery es lo que necesito? :/

Pero todavía no puedo 'compilar' esto en la solución adecuada.

Cómo evitar seleccionar n + 1?

Respuesta

3

esto no funcionó:

var q = from b in Session.Linq<Bar>().Expand("Foo.Title") 
       where ... 
       select b; 

Pero este tipo de una ayudado:

var q = from b in Session.Linq<Bar>().Expand("Foo") 
       where ... 
       select b; 

..pero ahora cosa que va a utilizar repositorio no sabe que ha de cargar Foos también.
¿Alguna idea de cómo hacerlo más explícito?

Una idea es cambiar el nombre a FindBarsWithFoos().

Al menos funciona.

Cuestiones relacionadas