Linq e l'esecuzione delle query

di Stefano Mostarda, in LINQ,

Ormai anche i sassi sanno che Visual Studio 2008 è alle porte. A fine febbraio uscirà la RTM. Questo significa che se fino ad adesso si è giocato o si è provato a capire solo la base di come funzionano le cose con LINQ, è arrivato il momento di fare sul serio.

Stamattina complice il jetleg di 5 ore mi sono svegliato presto e ovviamente tra il dover pulire casa, uscire fuori con 30 gradi, subirmi le sempre più pallose trasmissioni di Formula 1 ho scelto un pò di studio di LINQ (eh lo so son malato che ci posso fare :).

Una cosa che mi son chiesto è: quando LINQ esegue la query? Non che la cosa sia particolarmente importante, ma sapere come funziona fa sempre bene. Armato di VS2008 e del fido profiler mi sono messo all'opera ed ho tirato giù questo codice:

dbcontext db = new dbcontext();
var q = From t in db.table where t.field > 10 select t;
mylistview.DataSource = q;
mylistview.DataBind();


Queste 4 righe di codice comportano l'esecuzione della query solo nel momento in cui viene fatto il databind alla listview. In questo caso banale, la cosa non è importante, ma se si incrementano delle variabili nella query e si pretende che queste siano incrementate prima di fare il databind, allora questa modalità rappresenta un problema. Per ovviare al problema, basta circondare la query tra parentesi ed invocare un semplice ToList() per far eseguire subito la query.

var q = (From t in db.table where t.field > 10 select t).ToList();


P.S. Il fatto che LINQ mi interessi tanto non è dovuto solo alla sua potenza e alla RTM incombente... A buon intenditor poche parole ;).

Stay Tuned...

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese