Domanda

Foo ha titolo.
Bar riferimento Foo. Ho una collezione con Bar.
Ho bisogno di una collezione con Foo.Title.

Se ho 10 bar di raccolta, Chiamerò db 10 volte.

  

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

Al momento questo (usando NHibernate Linq e io non voglio cadere) recupera collezione Bar.

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

ho letto quello che dice Ayende su questo . < br> Un altro relativo domanda .
Un po 'di documentazione .
E un altro post .
Forse questo può aiutare?
Che dire di questo ?
Forse multiquery è che cosa ho bisogno? : /

Ma io ancora non riesco a 'compilazione' presente in soluzione adeguata.

Come evitare di selezione n + 1?

È stato utile?

Soluzione

Questo non ha funzionato:

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

Ma questo tipo di aiuto:

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

.. ma ora cosa che sta per usare repository non sa che sta caricando foos troppo.
Delle idee come rendere più esplicito?

Un'idea è quella di cambiare denominazione per FindBarsWithFoos ().

almeno funziona.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top