Posts
154
Comments
233
Trackbacks
6
mercoledì 30 dicembre 2009
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 @ mercoledì 30 dicembre 2009 16.31 | Feedback (0)
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.
La mia foto

Logo MCAD
Logo MCTS

Visite dal 16/03/2007:

Il mio stato su Messanger: