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
Utilizzare Azure AI Studio per testare i modelli AI
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
.NET Conference Italia 2024
Loggare le query più lente con Entity Framework
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Ottimizzare le performance usando Span<T> e il metodo Split
Generare velocemente pagine CRUD in Blazor con QuickGrid
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Utilizzare QuickGrid di Blazor con Entity Framework