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
Specificare il versioning nel path degli URL in ASP.NET Web API
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creare alias per tipi generici e tuple in C#
Generare file per il download da Blazor WebAssembly
Utilizzare la libreria Benchmark.NET per misurare le performance
Code scanning e advanced security con Azure DevOps
Reactive form tipizzati con modellazione del FormBuilder in Angular
Le novità di Entity Framework 8
Creare moduli CSS in React
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Recuperare un elemento inserito nella cache del browser tramite API JavaScript