Entity Framework tiene traccia di tutti gli oggetti letti dal database o attaccati manualmente al contesto. Questo comportamento è necessario per mantenere lo stato degli oggetti e verificarne eventuali modifiche per la successiva persistenza sul database. Tenere traccia degli oggetti ha un costo, quindi, se sappiamo che gli oggetti che dobbiamo recuperare in una query non devono essere modificati, possiamo disabilitare il tracking utilizzando il metodo AsNoTracking.
using (var ctx = new MyContext()) { var p = ctx.People .AsNoTracking() .ToList(); }
Possiamo anche impostare il tracking a livello di contesto tramite la proprietà ChangeTracker.QueryTrackingBehavior così come nel prossimo esempio.
using (var ctx = new MyContext()) { ctx.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; var p = ctx.People.ToList(); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottenere un token di accesso per una GitHub App
Utilizzare WhenEach per processare i risultati di una lista di task
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Introduzione alle Container Queries
Gestire progetti NPM in .NET Aspire
Eseguire query in contemporanea con EF
Centralizzare gli endpoint AI Foundry con Azure API Management
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Generare una User Delegation SAS in .NET per Azure Blob Storage
Rendere le variabili read-only in una pipeline di Azure DevOps
Simulare Azure Cosmos DB in locale con Docker
Disabilitare le run concorrenti di una pipeline di Azure DevOps