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
Utilizzare Intersect e Except per filtrare set di dati in TSql
Impostare automaticamente l'altezza del font tramite CSS
Combinare Container Queries e Media Queries
Gestione ciclo di vita in .NET Aspire
Centralizzare gli endpoint AI Foundry con Azure API Management
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Controllare la telemetria con .NET Aspire
Gestione CSS in Blazor con .NET 9
Ottimizzare le performance usando Span<T> e il metodo Split
Mischiare codice server side e client side in una query LINQ con Entity Framework
Collegare applicazioni server e client con .NET Aspire
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Inserire le news di Punto Informatico nel proprio sito


