sql >> Database teknologi >  >> RDS >> Oracle

Entity Framework kan ikke opdatere data i tabel med sammensat nøgle (Oracle)

Medtag venligst:

  • Enhedsdefinitionen
  • Kortlægningsklassen/konfigurationen fra konteksten
  • SQL-tabeldefinitionen

BackPropagateServerGen

Når jeg ser på stak-sporet, er det vigtigste, jeg ser, BackPropagateServerGen .

Entity Framework kører din opdatering mod databasen, men en af ​​dine sammensatte nøgleværdier (formodentlig COPY_ID) bliver faktisk ændret af UPDATE-kaldet. Denne server-genererede værdi kommer tilbage fra SQL-kaldet, og Entity Framework klager derefter over, at nøgleværdien bliver ændret under den.

Så jeg vil gætte på, at din COPY_ID sammensatte nøgleværdi er defineret som en servergenereret identifikator, men en eller begge af disse sker:

  • Du kortlægger til en visning eller en lagret procedure, som forstyrrer, hvad Entity Framework ville forvente af en vanilla OPDATERING
  • Du har en eller flere triggere på bordet, visningen eller den gemte procedure, der forstyrrer resultatet.

Hvis du har nogle triggere, skal du deaktivere dem midlertidigt for at se, om problemet stopper.

Hvis du kortlægger til en visning eller en lagret procedure, så prøv at tilknytte direkte til tabellen, hvis det er muligt.

Brug de profileringsværktøjer du har til at fange, hvilken SQL der udføres af koden.

Oversigt

Jeg tror, ​​at UPDATE-kaldet rent faktisk når databasen, men returneringsresultatet ændrer nøgleværdien(erne), hvilket får Entity Framework til at mislykkes og sandsynligvis ruller UPDATE-transaktionen tilbage (afhængigt af hvilken version af EF du bruger).




  1. Indstil variabel fra SELECT PHP

  2. Sådan kontrolleres, om indeks bruges eller ej i Oracle

  3. Sådan bruger du Sum, Avg og Count i Select Statement - SQL Server / TSQL Tutorial Del 128

  4. MySQL:To fremmednøgler i en tabel, der henviser til en anden tabel