Uruchamiam kod korekcyjny, który działa na dużym stosie jednostek, ponieważ jego prędkość maleje, to znaczy, ponieważ liczba śledzonych obiektów w kontekście rośnie z każdą iteracją, może to zająć dużo czasu, więc zapisuję zmiany na końcu każdej iteracji. Każda iteracja jest niezależna i nie zmienia wcześniej załadowanych jednostek.
Wiem, że mogę wyłączyć śledzenie zmian, ale nie chcę, ponieważ nie jest to kod wstawiania zbiorczego, ale ładowanie encji i obliczanie kilku rzeczy i jeśli liczby są nieprawidłowe ustaw nowe liczby i zaktualizuj / usuń / utwórz kilka dodatkowych podmiotów. Wiem, że mogę utworzyć nowy DbContext dla każdej iteracji i prawdopodobnie działałoby to szybciej niż robienie wszystkiego w tej samej instancji, ale myślę, że może być lepszy sposób.
Więc pytanie brzmi; Czy istnieje sposób na wyczyszczenie jednostek załadowanych wcześniej w kontekście bazy danych?
context.Entry(entity).State = EntityState.Detachedi przestanie śledzić tę konkretną jednostkę.