Spesso abbiamo l'esigenza di eseguire query adottando sempre gli stessi filtri. Per esempio, quando dobbiamo recuperari i clienti, dobbiamo recuperare solo quelli attivi. Se nel codice eseguiamo molte query sui clienti, dobbiamo ripetere lo stesso filtro in ogni query e quest'operazione è soggetta a errori e soprattutto il codice diventa complicato da mantenere.
Per ottimizzare il codice, possiamo creare un metodo che accetta in input un oggetto IQueryable<T> e sul quale applica i filtri restituendo infine l'oggetto filtrato. In questo modo, invece che applicare i filtri ad ogni query, possiamo semplicemente invocare il metodo per poi concatenare gli altri operatori LINQ.
private IQueryable<Customer> GetCustomers(this IQueryable<Customer> input){ return input.Where(c => c.IsActive); } ... var c = ctx.Customers.GetCustomers().OrderBy(c => c.Name);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestione CSS in Blazor con .NET 9
La gestione della riconnessione al server di Blazor in .NET 9
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Usare il colore CSS per migliorare lo stile della pagina
Utilizzare Locust con Azure Load Testing
Utilizzare DeepSeek R1 con Azure AI
Creare una libreria CSS universale: i bottoni
Potenziare la ricerca su Cosmos DB con Full Text Search
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Migliorare la sicurezza dei prompt con Azure AI Studio
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Collegare applicazioni server e client con .NET Aspire