Ogni volta che aggiungiamo un oggetto al contesto e ogni volta che salviamo i dati sul database, Entity Framework effettua una comparazione tra i dati degli oggetti e i dati che sono nel contesto per verificare se qualcosa è cambiato. Quando lavoriamo con un piccolo set di oggetti, questa comparazione è velocissima e il suo impatto sulle performance è insignificante.
Tuttavia, quando dobbiamo fare un inserimento massivo di oggetti nel contesto, quest'operazione comincia a diventare pesante in quanto ripetuta ad ogni singola aggiunta di un oggetto. Quindi, supponendo di dover inserire 1000 oggetti, questa operazione viene ripetuta mille volte.
Per ottimizzare le prestazioni possiamo usare il metodo AddRange di DbSet. Questo metodo disabilita il controllo delle modifiche, inserisce gli oggeti nel context e successivamente riabilita e scatena il controllo delle modifiche. In questo modo si incrementano notevolmente le prestazioni.
ctx.People.AddRange(_people);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Eseguire le GitHub Actions offline
Semplificare il deployment di siti statici con Azure Static Web App
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Configurare policy CORS in Azure Container Apps
Generare file per il download da Blazor WebAssembly
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Miglioramenti nell'accessibilità con Angular CDK
Utilizzare database e servizi con gli add-on di Container App
Eseguire una GroupBy per entity in Entity Framework