Właściwie mam kwerendę Linq, która pobiera obiekt i niektóre jego właściwości nawigacyjne.AsNoTracking() i dołącz
context.MyEntity
.AsNoTracking()
.Include(i=> i.Nav1)
.Include(i=> i.Nav2)
.Where(x=> x.Prop1==1)
.FirstOrDefault();
Teraz moje pytanie brzmi:
Czy wystarczy do tego zapytania nie śledzić MyEntity i NAV1, Nav2 lub należy dodać AsNoTracking dla każdej nieruchomości nawigacji. tak:
context.MyEntity
.AsNoTracking()
.Include(i=> i.Nav1)
.AsNoTracking()
.Include(i=> i.Nav2)
.AsNoTracking()
.Where(x=> x.Prop1==1)
.FirstOrDefault();
Potrzebujesz tylko "AsNoTracking" raz na zapytanie, więc twój pierwszy przykład jest poprawny. Wierzę, że drugi rzuci wyjątek czasu wykonywania (nie wiem, który). – Igor
Jeśli łańcuchujesz wiele metod LINQ, zawsze przekazujesz zwróconą sekwencję z poprzedniej metody do następnej. Więc po 'AsNoTracking' masz zapytanie, w którym zwrócone jednostki nie zostaną zbuforowane –
Tks za twoją pomoc –