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
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Load test di ASP.NET Core con k6
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Eseguire operazioni con timeout in React
Miglioramenti nelle performance di Angular 16
Configurare policy CORS in Azure Container Apps
Eseguire query verso tipi non mappati in Entity Framework Core
Evitare la command injection in un workflow di GitHub
Creare alias per tipi generici e tuple in C#
Generare token per autenicarsi sulle API di GitHub
Code scanning e advanced security con Azure DevOps
Migrare una service connection a workload identity federation in Azure DevOps