Negli script precedenti abbiamo visto come EF 8 permetta di mappare liste di tipi semplici (primitive collection). In questo script andremo a vedere come sia possibile scrivere query che dichiarano filtri basati su una lista di tipi semplici. Riprendendo l'esempio degli script precedenti dove una persona ha più soprannomi, proviamo a filtrare tutte le persone che hanno un determinato soprannome. Come possiamo vedere nel seguente script, non ci sono nuovi comandi o tecniche da imparare, il metodo di filtro è sempre lo stesso che adotteremmo con una normale navigation property.
var nickname = "Pippo"; var people = await context.People .Where(e => e.Nicknames.Any(n => n == nickname)) .ToListAsync();
Un altro esempio che possiamo fare è ricercare le persone che abbiano più di un nickname usando la proprietà Count.
var people = await context.People .Where(e => e.Nicknames.Count > 1) .ToListAsync();
Si possono utilizzare liste di tipi semplici non solo per filtrare, ma anche per le projection tramite il metodo Select. In questo esempio torniamo solamente il nome e i primi due soprannomi di ogni persona.
var people = await context.People .Select(c => new { c.Name Nicknames = c.Nicknames.Take(2) }) .ToListAsync();
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzazione dei block template in Angular 17
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Utilizzare i variable font nel CSS
Path addizionali per gli asset in ASP.NET Core MVC
Filtering sulle colonne in una QuickGrid di Blazor
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Potenziare la ricerca su Cosmos DB con Full Text Search
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Generare velocemente pagine CRUD in Blazor con QuickGrid
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Creare agenti facilmente con Azure AI Agent Service