Mysql
 sql >> база данни >  >> RDS >> Mysql

ASP.NET уеб формуляри и MySql Entity Framework:Вложените транзакции не се поддържат

Вероятно сте се сблъскали с тази грешка в MySQL Connector/NET .

Какво предизвиква този бъг:

  1. Кодови извиквания за изпълнение на заявка A
  2. Транзакция 1 за заявка А е стартирана
  3. Заявка А се изпълнява и причинява грешка в MySQL
  4. Транзакция 1 НЕ се връща назад
  5. Извиквания на код за изпълнение на заявка B
  6. Транзакция 2 за заявка Б е стартирана
  7. MySQL Connector/NET хвърля изключението

Грешката е точка 4:транзакция 1 е оставена отворена след грешка (или поне конекторът все още е убеден, че е оставен отворен). Поради обединяването на връзки, кодът, извикващ заявка A и заявка B, може да бъде напълно несвързан. Освен това, ако времето между точки 4 и 5 е достатъчно дълго, транзакцията е върнати назад, оттук и рядкост и случайност.

За съжаление все още няма поправка от MySQL. Единственото заобиколно решение, за което знам, е изтеглянето на изходния код на Connector/NET и поправката/изграждането му сами.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySQL MATCH в множество таблици

  2. как да запазите хеш стойност в колоната на таблицата в релсите

  3. Таймер за обратно броене на Javascript и PHP, който показва едно и също за всички

  4. Как да добавя препратка към MySQL конектора за .NET?

  5. Съхранявайте времето между записите