sql >> Databasteknik >  >> RDS >> Mysql

ASP.NET Web Forms och MySql Entity Framework:Kapslade transaktioner stöds inte

Du har förmodligen stött på det här felet i MySQL Connector/NET .

Vad utlöser detta fel:

  1. Kodanrop för exekvering av fråga A
  2. Transaktion 1 för fråga A har startat
  3. Fråga A exekveras och orsakar ett fel i MySQL
  4. Transaktion 1 återställs INTE
  5. Kodanrop för exekvering av fråga B
  6. Transaktion 2 för fråga B har startat
  7. MySQL Connector/NET skapar undantaget

Felet är punkt 4:transaktion 1 lämnas öppen efter ett fel (eller åtminstone är kontakten fortfarande övertygad om att den lämnas öppen). På grund av anslutningspoolning kan koden som anropar fråga A och fråga B vara helt orelaterade. Dessutom, om tiden mellan punkt 4 och 5 är tillräckligt lång, är transaktionen rullade tillbaka, därav sällsyntheten och slumpen.

Tyvärr finns det ingen fix av MySQL ännu. Den enda lösningen jag känner till är att ladda ner källkoden för Connector/NET och fixa/bygga den själv.




  1. HAProxy Connections vs MySQL Connections - Vad du bör veta

  2. Utveckla en modul med Java 9 i Eclipse IDE, del 2

  3. Utforska de olika sätten att kryptera dina MariaDB-data

  4. SQL - Hur transponerar man?