Utilizzare il lazy loading con i proxy in Entity Framework Core 2.1

di Stefano Mostarda, in LINQ,

Una delle novità di Entity Framework Core 2.1 è la possibilità di utilizzare il lazy loading per caricare le entity solo quando richieste. Esistono tre tecniche con cui si può introdurre il lazy loading nelle nostre applicazioni: i proxy, il lazy loader e l'action loader. In questo script ci occupiamo della prima tecnica.
Questa tecnica si basa sulla capacità di Entity Framework Core di wrappare la nostra entity in un proxy e di wrappare getter e setter delle navigation property per accedere al database.

Per fare questo dobbiamo rendere le nostre classi non sealed e marcare le navigation property come virtual. Infine dobbiamo aggiungere all'applicazione il pacchetto nuget Microsoft.EntityFrameworkCore.Proxies e usare il metodo UseLazyLoadingProxies in fase di configurazione del contesto.

public partial class Customers 
{
  public virtual List<Order> Orders { get; set; }
}

public partial class northwindContext : DbContext 
{
  protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  {
    if (!optionsBuilder.IsConfigured)
    {
      optionsBuilder.UseSqlServer("Server=(local);Database=northwind;Trusted_Connection=True;");
      optionsBuilder.UseLazyLoadingProxies();
    }
  }
  ...
}

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