sql >> Databasteknik >  >> RDS >> Oracle

Entity Framework kan inte uppdatera data i tabell med sammansatt nyckel (Oracle)

Vänligen inkludera:

  • Enhetsdefinitionen
  • Mappningsklassen/konfigurationen från sammanhanget
  • SQL-tabelldefinitionen

BackPropagateServerGen

När jag tittar på stackspåret är det viktigaste jag ser BackPropagateServerGen .

Entity Framework kör din uppdatering mot databasen, men ett av dina sammansatta nyckelvärden (förmodligen COPY_ID) ändras faktiskt av UPDATE-anropet. Det här servergenererade värdet kommer tillbaka från SQL-anropet, och Entity Framework klagar sedan över att nyckelvärdet ändras under det.

Så jag skulle gissa att ditt COPY_ID sammansatta nyckelvärde är definierat som en servergenererad identifierare, men en eller båda av dessa händer:

  • Du mappar till en vy eller en lagrad procedur som stör vad Entity Framework skulle förvänta sig av en vanillaUPPDATERING
  • Du har en eller flera utlösare på bordet, vyn eller lagrad procedur som stör resultatet.

Om du har några triggers, inaktivera dem tillfälligt för att se om problemet upphör.

Om du mappar till en vy eller en lagrad procedur, försök att mappa direkt till tabellen om möjligt.

Använd vilka profileringsverktyg du än har för att fånga vilken SQL som exekveras av koden.

Sammanfattning

Jag tror att UPDATE-anropet faktiskt når databasen, men returresultatet ändrar nyckelvärdena, vilket gör att Entity Framework misslyckas och troligen återställer UPDATE-transaktionen (beroende på vilken version av EF du använder).




  1. välja * som matchar användarens postnummer i mysql-tabellen?

  2. Färsk MYSQL-installation, åtkomst nekad för användarens "root"

  3. Var och när man ska öppna en databasanslutning

  4. Hur testar man om en MySQL-fråga lyckades ändra databastabelldata?