sql >> Base de Datos >  >> RDS >> Mysql

ASP.NET Web Forms y MySql Entity Framework:las transacciones anidadas no son compatibles

Es probable que se haya topado con este error en MySQL Connector/NET .

Qué desencadena este error:

  1. Llamadas de código para la ejecución de la consulta A
  2. Se inicia la transacción 1 para la consulta A
  3. La consulta A se ejecuta y provoca un error en MySQL
  4. La transacción 1 NO se revierte
  5. Llamadas de código para la ejecución de la consulta B
  6. Se inicia la transacción 2 para la consulta B
  7. MySQL Connector/NET lanza la excepción

El error es el punto 4:la transacción 1 se deja abierta después de un error (o al menos el conector todavía está convencido de que se deja abierto). Debido a la agrupación de conexiones, el código que solicita la consulta A y la consulta B puede no estar relacionado en absoluto. Además, si el tiempo entre los puntos 4 y 5 es lo suficientemente largo, la transacción es revertido, de ahí la rareza y la aleatoriedad.

Desafortunadamente, MySQL aún no ha solucionado el problema. La única solución alternativa que conozco es descargar el código fuente de Connector/NET y arreglarlo/construirlo usted mismo.