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
Utilizzare QuickGrid di Blazor con Entity Framework
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Filtering sulle colonne in una QuickGrid di Blazor
Usare le navigation property in QuickGrid di Blazor
Generare velocemente pagine CRUD in Blazor con QuickGrid
Change tracking e composition in Entity Framework
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT