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 il top layer in HTML
Utilizzo del persistent state di Blazor nel prerendering
Dallo sviluppo locale ad Azure con .NET Aspire
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Integrare il Docker Model Runner in un workflow di GitHub
Semplificare i deployment con le label in Azure Container App
Utilizzare il Null conditional assignment di C# 14
Esporre un server MCP esistente con Azure API Management
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Gestire il ciclo di vita di AbortController in Javascript
Utilizzare noopener e noreferrer nei link HTML


