Вероятно сте се сблъскали с тази грешка в MySQL Connector/NET .
Какво предизвиква този бъг:
- Кодови извиквания за изпълнение на заявка A
- Транзакция 1 за заявка А е стартирана
- Заявка А се изпълнява и причинява грешка в MySQL
- Транзакция 1 НЕ се връща назад
- Извиквания на код за изпълнение на заявка B
- Транзакция 2 за заявка Б е стартирана
- MySQL Connector/NET хвърля изключението
Грешката е точка 4:транзакция 1 е оставена отворена след грешка (или поне конекторът все още е убеден, че е оставен отворен). Поради обединяването на връзки, кодът, извикващ заявка A и заявка B, може да бъде напълно несвързан. Освен това, ако времето между точки 4 и 5 е достатъчно дълго, транзакцията е върнати назад, оттук и рядкост и случайност.
За съжаление все още няма поправка от MySQL. Единственото заобиколно решение, за което знам, е изтеглянето на изходния код на Connector/NET и поправката/изграждането му сами.