Mysql
 sql >> Baza danych >  >> RDS >> Mysql

wiele dodanych jednostek może mieć ten sam klucz podstawowy w źródle bazy danych

W swojej edycji wspominasz, że „Wiele dodanych jednostek może mieć ten sam klucz podstawowy”. błąd. Nie znając wszystkich szczegółów tego, co tutaj robisz, wygląda na to, że tworzysz relację z bytem - z których są dwie w kontekście o tym samym identyfikatorze. Są to prawdopodobnie nowe podmioty, które nie zostały jeszcze zapisane, przez co otrzymują automatycznie wygenerowany identyfikator z bazy danych. Jeśli relacja jest oparta na identyfikatorze, istnieje pewna niejednoznaczność, ponieważ Entity Framework nie jest w stanie określić, które z nowych jednostek faktycznie wskazuje relacja — oba mają identyfikator, na który wskazuje relacja.

Istnieją dwie potencjalne poprawki.

  1. Generuj tymczasowy, unikalny identyfikator dla jednostek, gdy są one tworzone w kontekście. Entity Framework odrzuci to, gdy jednostka zostanie zapisana, ale do tego momentu może jej użyć do odróżnienia jednej nowej jednostki od drugiej. W przeszłości używałem w tym celu ujemnych liczb całkowitych.

  2. Nie twórz relacji przy użyciu identyfikatorów, ale raczej odwołań do encji. Jeśli Entity Framework ma bezpośrednie odniesienie do jednostki, nie musi przechodzić przez proces identyfikacji jednostki na podstawie nieunikalnych identyfikatorów i nie powinien mieć tego problemu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Problem z tworzeniem funkcji zdefiniowanej przez użytkownika (UDF)

  2. Jak zmienić typ sortowania dla kolumny MySQL?

  3. Dlaczego mysql_query() zwraca TRUE z instrukcją SELECT?

  4. W zapytaniach MySQL, po co używać join zamiast gdzie?

  5. mysqldump:Mam errno 32 podczas zapisu