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
Triggerare una pipeline su un altro repository di Azure DevOps
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Sostituire la GitHub Action di login su private registry
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Creare una libreria CSS universale: Nav menu
Creare alias per tipi generici e tuple in C#
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Ordinare randomicamente una lista in C#
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Assegnare un valore di default a un parametro di una lambda in C#
Sfruttare al massimo i topic space di Event Grid MQTT