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
Eseguire query verso tipi non mappati in Entity Framework Core
Eseguire attività basate su eventi con Azure Container Jobs
Utilizzare Azure Cosmos DB con i vettori
Sfruttare lo streaming di una chiamata Http da Blazor
Generare la software bill of material (SBOM) in GitHub
Reactive form tipizzati con modellazione del FormBuilder in Angular
Utilizzare le collection expression in C#
Ottimizzazione dei block template in Angular 17
.NET Conference Italia 2023
Come migrare da una form non tipizzata a una form tipizzata in Angular
Creare alias per tipi generici e tuple in C#
Definire stili a livello di libreria in Angular