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
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Reactive form tipizzati con FormBuilder in Angular
Effettuare il binding di date in Blazor
Gestire liste di tipi semplici con Entity Framework Core
Usare il versioning con i controller di ASP.NET Core Web API
Creare alias per tipi generici e tuple in C#
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Usare le collection expression per inizializzare una lista di oggetti in C#
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Semplificare il deployment di siti statici con Azure Static Web App