2017-05-23 2 views
1

Ich habe diese Linq-Abfrage:EF Include() mit AsNoTracking

database.EmployeeHistory.AsNoTracking() 
.Include("Employee.Orders") 
.Include("Employee.Books").AsNoTracking() 

Diese Ausnahme, dass arbeitet, um die Änderungen zu speichern ich für Employee.Orders gemacht funktioniert nicht. Bedeutet dies, dass auch ich das AsNoTracking für Employee.Orders nicht hinzugefügt habe, wird es auch nicht verfolgt?

+2

'AsNoTracking' ist eine Abfrageebene Option. Es betrifft alle von der Abfrage zurückgegebenen Entitäten. –

+1

Da die 'EmployeeHistory' nicht zwischengespeichert wird, wird der 'Employee.Orders' ebenfalls nicht zwischengespeichert. –

Antwort

0

AsNoTracking bedeutet, dass Änderungen, die Sie an den Entitäten vornehmen, nicht vom Change Tracker verfolgt werden und nicht beim Aufruf von SaveChanges() übernommen werden.

AsNoTracking() ist für schreibgeschützte Szenarien gedacht. In diesem Fall werden Ihre Entitäten nicht vom Kontext überwacht und sollten die Speicherauslastung & unterstützen.

In Ihrem Fall entfernen Sie AsNoTracking() und versuchen Sie erneut zu speichern.

Verwandte Themen