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 ciclo di vita in .NET Aspire
Integrare modelli AI in un workflow di GitHub
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Impostare automaticamente l'altezza del font tramite CSS
Centralizzare gli endpoint AI Foundry con Azure API Management
Utilizzo delle stepped value functions nel CSS
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Definire il metodo di rilascio in .NET Aspire
Modificare lo stile in una QuickGrid Blazor
Recuperare le subissue e il loro stato di completamento in GitHub
Effettuare la ricerca di testo nascosto in una pagina web con Javascript
Mischiare codice server side e client side in una query LINQ con Entity Framework




