Mysql
 sql >> Datenbank >  >> RDS >> Mysql

ASP.NET Web Forms und MySql Entity Framework:Verschachtelte Transaktionen werden nicht unterstützt

Sie sind wahrscheinlich auf diesen Fehler in MySQL Connector/NET gestoßen .

Was löst diesen Fehler aus:

  1. Code-Aufrufe zur Ausführung von Abfrage A
  2. Transaktion 1 für Abfrage A wird gestartet
  3. Abfrage A wird ausgeführt und verursacht einen Fehler in MySQL
  4. Transaktion 1 wird NICHT zurückgesetzt
  5. Code-Aufrufe zur Ausführung von Abfrage B
  6. Transaktion 2 für Abfrage B wird gestartet
  7. MySQL Connector/NET löst die Ausnahme aus

Der Fehler ist Punkt 4:Transaktion 1 wird nach einem Fehler offen gelassen (oder zumindest der Konnektor ist immer noch davon überzeugt, dass er offen gelassen wurde). Aufgrund des Verbindungspoolings kann der Code, der Abfrage A und Abfrage B aufruft, völlig unabhängig sein. Auch wenn die Zeit zwischen Punkt 4 und 5 lang genug ist, ist die Transaktion erfolgt zurückgerollt, daher die Seltenheit und Zufälligkeit.

Leider gibt es noch keinen Fix von MySQL. Die einzige mir bekannte Problemumgehung besteht darin, den Quellcode von Connector/NET herunterzuladen und ihn selbst zu reparieren/zu erstellen.