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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Proteggere le risorse Azure con private link e private endpoints
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Configurare lo startup di applicazioni server e client con .NET Aspire
Introduzione ai web component HTML
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Loggare le query più lente con Entity Framework
Utilizzare Hybrid Cache in .NET 9
Creare una libreria CSS universale - Rotazione degli elementi
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Eseguire i worklow di GitHub su runner potenziati
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste