sql >> Database >  >> RDS >> Mysql

ASP.NET Web Forms en MySql Entity Framework:geneste transacties worden niet ondersteund

U bent waarschijnlijk deze bug in MySQL Connector/NET tegengekomen .

Wat veroorzaakt deze bug:

  1. Code-aanroepen voor uitvoering van query A
  2. Transactie 1 voor zoekopdracht A is gestart
  3. Query A wordt uitgevoerd en veroorzaakt een fout in MySQL
  4. Transactie 1 wordt NIET teruggedraaid
  5. Code-aanroepen voor uitvoering van query B
  6. Transactie 2 voor zoekopdracht B is gestart
  7. MySQL Connector/NET genereert de uitzondering

De bug is punt 4:transactie 1 wordt opengelaten na een fout (of in ieder geval is de connector er nog steeds van overtuigd dat hij open staat). Vanwege pooling van verbindingen kan de code die om query A en query B vraagt, volledig los van elkaar staan. Ook als de tijd tussen punt 4 en 5 lang genoeg is, is de transactie is teruggedraaid, vandaar de zeldzaamheid en willekeur.

Helaas is er nog geen oplossing door MySQL. De enige oplossing die ik ken, is de broncode van Connector/NET downloaden en deze zelf repareren/bouwen.




  1. Hoe te BESTELLEN BY varchar veld als nummer?

  2. Bereken kantooruren tussen twee datums

  3. Inleiding tot Inline Table-Valued Functions (ITVF) in SQL Server

  4. Een MySQL-schema importeren naar Xcode als een CoreData-gegevensmodel