Disabilitare il tracking degli oggetti in Entity Framework Core

di Stefano Mostarda, in LINQ, Entity Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi