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 EF.Constant per evitare la parametrizzazione di query SQL
Il nuovo controllo Range di Blazor 9
Gestione ciclo di vita in .NET Aspire
Gestione dell'annidamento delle regole dei layer in CSS
La gestione della riconnessione al server di Blazor in .NET 9
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Simulare Azure Cosmos DB in locale con Docker
Gestione file Javascript in Blazor con .NET 9
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Gestire gli accessi con Token su Azure Container Registry
Recuperare l'ultima versione di una release di GitHub
Configurare lo startup di applicazioni server e client con .NET Aspire