Eseguire query manipolando liste di tipi semplici con Entity Framework Core

di Stefano Mostarda, in LINQ, Entity Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi