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
Verificare la provenienza di un commit tramite le GitHub Actions
Copiare automaticamente le secret tra più repository di GitHub
Eseguire operazioni sui blob con Azure Storage Actions
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare gli snapshot con Azure File shares
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Creazione di componenti personalizzati in React.js con Tailwind CSS