Compilare una query LINQ to Entities è un'operazione molto lenta. Per migliorare le cose possiamo effettuare la compilazione una volta sola e riutilizzare la versione compilata sfruttando il metodo statico Compile della classe CompiledQuery.
var compQuery = 
  CompiledQuery.Compile<OrderITEntities, string, IQueryable<Customer>>(
    (ctx, name) => ctx.Customers.Where(c => c.Name.StartsWith(name))
  );Il metodo Compile accetta n parametri generici dove il primo è il tipo del contesto, l'ultimo è il tipo restituito dalla query e quelli in mezzo sono i parametri da passare alla query.
Per invocare la query compilata basta usare il metodo Invoke della variabile restituita dal metodo Compile.
var items = compQuery.Invoke(ctx, "Custo").ToList();
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
- Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
- Change tracking e composition in Entity Framework
- Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
- Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
- Loggare le query più lente con Entity Framework
- Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
- Eseguire query in contemporanea con EF
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
I più letti di oggi
- CSS Friendly Toolkit per ASP.NET 2.0 Beta 1, per migliorare il supporto agli standard web
- Occhio alle bufale: Microsoft non invia patch via e-mail!
- Nuova build di IE 7 beta 2 preview con la March 20 Refresh
- CSS Friendly ASP.NET 2.0 Control Adapters Beta 3
- Pubblicare un MCP Server in GitHub MCP Registry
- WinPhoneItalia.com: dal 15 settembre tutto per sviluppare per Windows Phone e mobile
- IIS guadagna ancora terreno
- Adattare le immagini in base alla pixel density con HTML5 e CSS3


