Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 49435|Odpowiedź: 1

[Źródło] EF Entity typu addend "XXXX" zawodzą, ponieważ inne...

[Skopiuj link]
Opublikowano 12.05.2021 09:43:53 | | |
EF dodaje jednostkę typu "XXXX", która nie ulega, ponieważ inna jednostka tego samego typu ma już tę samą wartość klucza głównego. Przy użyciu metody "Przyczep" lub ustawianiu stanu jednostki na "Niezmieniony" lub "Zmodyfikowany"

Ponieważ inne podmioty tego samego typu mają już tę samą wartość klucza głównego. Takie zachowanie może wystąpić przy użyciu metody "Przyczep" lub przy ustawianiu statusu jednostki na "Niezmieniony" lub "Zmodyfikowany", jeśli jakaś jednostka w rysunku ma sprzeczną wartość klucza
Może to wynikać z faktu, że niektóre podmioty są nowe i nie otrzymały jeszcze wygenerowanej wartości klucza (nowej jednostki), w takim przypadku wykres jest śledzony metodą "Dodaj" lub stanem "Dodany", a następnie stan nienowej jednostki jest odpowiednio ustawiany na "Niezmieniony" lub "Zmodyfikowany".
W rzeczywistości ten błąd polega na tym, że gdy EF otwiera transakcję, dane z tym samym kluczem głównym są już dostępne w kontekście EF, i osobiście napotykam ten problem w różnych sytuacjach:

Sytuacja 1:

Modyfikując i iterując te same dane w tabeli (np. iterując ilość zapasów tego samego elementu), ten przypadek powinien być pierwszym przypadkiem, gdy bufor kontekstowy nie jest czyszczony

Kod jest następujący:


Pętla tutaj nie zgłasza błędu za pierwszym razem, a za drugim będzie błędem

Rozwiązanie:


Sytuacja 2:

Operacja pętli najpierw dodaje fragment danych, a następnie modyfikuje dane

Kod jest następujący:


Błędy są również zgłaszane tutaj, zwłaszcza dla nowych EF lub nowych podmiotów

Rozwiązanie:








Poprzedni:Test wydajności Redis Benchmark
Następny:ASP.NET Szczegółowe wyjaśnienie middleware Middleware w Core (9).
Opublikowano 22.09.2021 20:55:57 |
Naucz się uczyć...
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com