Mysql
 sql >> база данни >  >> RDS >> Mysql

множество добавени обекти може да имат един и същ първичен ключ в базата данни

Във вашата редакция споменавате „Няколко добавени обекти може да имат един и същ първичен ключ“. грешка. Без да знаете всички подробности за това, което правите тук, звучи сякаш създавате връзка с обект - от който има две в контекста със същия идентификатор. Това вероятно са нови обекти, които все още не са запазени, което е мястото, където те получават автоматично генериран идентификатор от базата данни. Ако връзката се основава на идентификатора, тогава има известна неяснота, тъй като Entity Framework не е в състояние да определи към кои от новите обекти всъщност сочи връзката – и двете имат идентификатора, към който сочи връзката.

Има две възможни поправки.

  1. Генерирайте временен, уникален идентификатор за обекти, тъй като те са създадени в контекста. Entity Framework ще отхвърли това, когато обектът бъде запазен, но до този момент може да го използва, за да разграничи един нов обект от другия. В миналото съм използвал отрицателни цели числа за тази цел.

  2. Не създавайте връзките с помощта на идентификатори, а по-скоро върху препратки към обекти. Ако Entity Framework има пряка препратка към обекта, тогава не е необходимо да преминава през процеса на идентифициране на обекта въз основа на неуникални идентификатори и не би трябвало да има този проблем.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при инсталиране на mysqlclient за python на Ubuntu 18.04

  2. PHP MYSQL динамично поле за избор

  3. Escape низ на Python за MySQL

  4. SQL заявка за създаване на таблица в MySQL

  5. PHP:множество SQL заявки в един израз mysql_query