Mysql
 sql >> Baza danych >  >> RDS >> Mysql

ASP.NET Web Forms i MySql Entity Framework:transakcje zagnieżdżone nie są obsługiwane

Prawdopodobnie napotkałeś ten błąd w MySQL Connector/NET .

Co powoduje ten błąd:

  1. Kod wzywa do wykonania zapytania A
  2. Rozpoczęto transakcję 1 dla zapytania A
  3. Zapytanie A jest wykonywane i powoduje błąd w MySQL
  4. Transakcja 1 NIE jest cofana
  5. Kod wywołuje wykonanie zapytania B
  6. Rozpoczęto transakcję 2 dla zapytania B
  7. MySQL Connector/NET zgłasza wyjątek

Błąd jest w punkcie 4:transakcja 1 pozostaje otwarta po błędzie (lub przynajmniej łącznik jest nadal przekonany, że jest otwarty). Z powodu puli połączeń kod wywołujący zapytanie A i zapytanie B może być całkowicie niepowiązany. Ponadto, jeśli czas między punktem 4 a 5 jest wystarczająco długi, transakcja jest wycofane, stąd rzadkość i losowość.

Niestety, MySQL nie ma jeszcze poprawki. Jedyne obejście, jakie znam, to pobranie kodu źródłowego Connector/NET i samodzielne naprawianie/budowanie go.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyodrębnić ciąg znaków między dwoma znakami specjalnymi w mysql

  2. MySQL UUID(), gdy nie jest unikalny?

  3. Pobieranie danych z wielu tabel w jednym wierszu przy jednoczesnym łączeniu niektórych wartości

  4. sprzężenie wewnętrzne z pustym wynikiem z prawej tabeli

  5. SQL dla relacji hierarchicznej