Sök…


Anmärkningar

Spårningsbeteende styr huruvida Entity Framework ska behålla information om en enhetsinstans i dess ändringsspårning. Om en enhet spåras kommer alla ändringar som upptäcks i enheten att fortsätta till databasen under SaveChanges() .

Spåra frågor

  • Som standard spårar frågor som returnerar entitetstyper
  • Detta innebär att du kan göra ändringar i dessa instansinstanser och få ändringarna kvar av SaveChanges()

Exempel:

  • Ändringen av book kommer att upptäckas och fortsätter till databasen under SaveChanges() .
  using (var context = new BookContext())
  {
    var book = context.Books.FirstOrDefault(b => b.BookId == 1);
    book.Rating = 5;
    context.SaveChanges();
  }

Frågor utan spårning

  • Inga spårningsfrågor är användbara när resultaten används i en read-only scenarie
  • De är quicker to execute eftersom det inte finns något behov att konfigurera spårningsinformation för ändring

Exempel:

using (var context = new BookContext())
{
    var books = context.Books.AsNoTracking().ToList();
}

Med EF Core 1.0 kan du också ändra standardspårningsbeteendet på context instance .

Exempel:

using (var context = new BookContext())
{
    context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;

    var books = context.Books.ToList();
}

Spårning och prognoser

  • Även om resultattypen för frågan inte är en entitetstyp, om resultatet contains entity kommer de fortfarande att tracked by default

Exempel:

  • I följande fråga, som returnerar en anonymous type , will be tracked förekomsten av Book i resultatset

     using (var context = new BookContext())
     {
        var book = context.Books.Select(b => new { Book = b, Authors = b.Authors.Count() });
     }
    
  • Om resultatuppsättningen does not innehåller några entity utförs no tracking

Exempel:

  • I följande fråga, som returnerar en anonymous type med några av värdena från enheten (men no instances av den faktiska entity ), utförs ingen spårning .

    using (var context = new BookContext())
    {
       var book = context.Books.Select(b => new { Id = b.BookId, PublishedDate = b.Date });
    }
    


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow