Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON

di Stefano Mostarda, in LINQ, Entity Framework,

Entity Framework 7 ha introdotto la possibilità mappare un tipo verso una colonna di tipo varchar tramite la serializzazione in JSON. La versione 8 ha completato questa funzionalità eliminando alcune limitazioni della versione precedente. La limitazione più importante che è stata eliminata riguarda la possibilità di eseguire filtri su proprietà di tipo lista. Per chiarire meglio, facciamo un esempio. Supponiamo di avere un oggetto Person con una proprietà Contacts. Questa proprietà contiene una lista di email, di telefoni, di indirizzi e così via.
Con Entity Framework 7, eseguire una query che cercava le persone che avessero un certo indirizzo era impossibile in quanto, sebbene il codice compilasse, a runtime si riceveva un'eccezione. Con Entity Framework questa limitazione è stata rimossa e quindi possiamo scrivere una query come la seguente.

var street = "via del corso";
var people = await context.People
  .Where(c => c.Contacts.Address.Any(s => s.Street == street))
  .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