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
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Usare lo spread operator con i collection initializer in C#
Aggiungere interattività lato server in Blazor 8
Eseguire attività basate su eventi con Azure Container Jobs
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Installare le Web App site extension tramite una pipeline di Azure DevOps
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Migliorare la sicurezza dei prompt con Azure AI Studio
Generare un hash con SHA-3 in .NET
Eseguire attività con Azure Container Jobs
I più letti di oggi
- Centrare elementi in HTML tramite CSS
- Proteggere le risorse Azure con private link e private endpoints
- Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
- Referenziare un @layer più alto in CSS
- Gestire i dati con Azure Cosmos DB Data Explorer
- Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API