Posts
163
Comments
179
Trackbacks
5
Eager load con NHibernate.Linq


Modificare la strategia di caricamento delle entità a runtime è senz’altro uno dei punti di forza di NHibernate.
Utilizzando Criteria si può utilizzare il metodo SetFetchMode per modificare la modalità di fetch, mentre chi usa HQL può usare il fetch join per eseguire un eager load di una entità. Ma volendo usare NHibernate.Linq come possiamo fare?

Fortunatamente esiste un apposito extension method, l’Expand. Nell’esempio qui sotto carichiamo una fattura con il relativo cliente utilizzando un’unica query:

   1: Dim q = Me.GetSession.Linq(Of Fattura)()
   2: q.Expand("Cliente")
   3:  
   4: Dim items = From item In q _
   5:             Where item.Numero = "10"
   6: ' Restituisco la lista
   7: Return items.ToList()(0)
posted on mercoledì 30 dicembre 2009 18:31 Print
Comments have been closed on this topic.
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS