2017. június 23., péntek

Entity Framework cache frissítése

Entity Framework 6-ban a DbContext automatikusan cache-eli az adatokat, ami az esetek jelentős részében teljesen jó dolognak számít. Azonban vannak olyan szituációk, amikor az elérni kívánt adatok az aktuális contexten kívül már megváltoztak (például másik felhasználó módosította vagy tárolt eljárás ért hozzá). 

Több lehetőség is létezik a helyzet kezelésére:
1. A követés kikapcsolása az AsNoTracking() utasítással
2. Régi DbContext példány eldobása és új létrehozása
3. ObjectQuery használata a MergeOptions beállításával a DBQuery helyett
4. Elem frissítése (Reload / Refresh)
5. Elem leválasztása (Detach)
6. GetDatabaseValues hívás, hogy egy adott Elem (Entity) frissítve legyen
7. A régi adatok használata

Ezen a linken részletesen körbejárják az egyes lehetőségeket, hogy melyiket mikor is éri meg használni. 

Nincsenek megjegyzések:

Megjegyzés küldése