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

Entity Framework не може да актуализира данни в таблица със съставен ключ (Oracle)

Моля, включете:

  • Определението на обект
  • Класът/конфигурацията на съпоставяне от контекста
  • Дефиницията на SQL таблицата

BackPropagateServerGen

Гледайки проследяването на стека, ключовото нещо, което виждам, е BackPropagateServerGen .

Entity Framework изпълнява вашата актуализация спрямо базата данни, но една от стойностите на вашия съставен ключ (вероятно COPY_ID) всъщност се променя от извикването UPDATE. Тази генерирана от сървъра стойност се връща от SQL извикването и Entity Framework след това се оплаква, че стойността на ключа се променя изпод нея.

И така, бих предположил, че стойността на вашия съставен ключ COPY_ID е дефинирана като идентификатор, генериран от сървъра, но се случва едно или и двете:

  • Съпоставяте към изглед или съхранена процедура, която пречи на това, което Entity Framework би очаквало от актуална АКТУАЛИЗАЦИЯ
  • Имате един или повече тригери в таблицата, изгледа или съхранената процедура, които пречат на резултата.

Ако имате някакви тригери, деактивирайте ги временно, за да видите дали проблемът ще спре.

Ако картографирате към изглед или съхранена процедура, опитайте да картографирате директно към таблицата, ако е възможно.

Използвайте всички инструменти за профилиране, които имате, за да уловите какъв SQL се изпълнява от кода.

Резюме

Мисля, че извикването UPDATE всъщност достига до базата данни, но резултатът от връщането променя ключовата(ите) стойност(и), което води до неуспех на Entity Framework и вероятно връща обратно транзакцията UPDATE (в зависимост от версията на EF, която използвате).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция за агрегиране на Oracle за разпределяне на суми

  2. Има ли някаква логична причина да има различно таблично пространство за индекси?

  3. Oracle WITH и MATERIALIZE hint действа като автономна транзакция за функции

  4. Как да декларирам числова променлива, където мога да запазя броя на таблицата в моя цикъл

  5. Как да си спомня в каква посока трябва да върви PRIOR в заявките CONNECT BY