sql >> Databáze >  >> RDS >> Mysql

Webové formuláře ASP.NET a MySql Entity Framework:Vnořené transakce nejsou podporovány

Pravděpodobně jste narazili na tuto chybu v MySQL Connector/NET .

Co spouští tuto chybu:

  1. Kód volá pro provedení dotazu A
  2. Je zahájena transakce 1 pro dotaz A
  3. Dotaz A se provede a způsobí chybu v MySQL
  4. Transakce 1 NENÍ vrácena zpět
  5. Volání kódu pro provedení dotazu B
  6. Je zahájena transakce 2 pro dotaz B
  7. MySQL Connector/NET vyvolá výjimku

Chyba je v bodě 4:transakce 1 zůstane po chybě otevřená (nebo je alespoň konektor stále přesvědčen, že zůstal otevřený). Kvůli sdružování připojení může volání kódu pro dotaz A a dotaz B zcela nesouviset. Také pokud je čas mezi body 4 a 5 dostatečně dlouhý, transakce je vráceno zpět, proto ta vzácnost a náhodnost.

Bohužel zatím není žádná oprava pomocí MySQL. Jediné řešení, o kterém vím, je stažení zdrojového kódu Connector/NET a jeho oprava/sestavení sami.




  1. Ukládání mikrosekund v MySQL:jaké řešení?

  2. Nainstalujte MySQL na Mac

  3. Jak Postgresql COPY TO STDIN with CSV dělá on conflic aktualizaci?

  4. Jak zkontrolovat verzi PostgreSQL