Pregunta

Estoy tratando de obtener mi aplicación MVC3 para usar la base de datos MySQL en lugar de SQL Server 2008. He creado la base de datos y los objetos asociados en MySQL.Y actualizó la cadena de conexión en mi archivo web.config para hacer referencia a MySQL.DATA.MYSQLCLIENT.

Cuando ejecuto mi solicitud e intento iniciar sesión, recibo el error

Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.

Tengo un proveedor de miembros personalizado y dentro del proceso de validación. Tengo la siguiente

 using (MyContext context= new MyContext())
 {
      --some checks here
      ---
        if (verificationSucceeded)
        {
            user.passwordFailuresSinceLastSuccess = 0;
        }
        else
        {
            int failures = user.passwordFailuresSinceLastSuccess;
            if (failures != -1)
            {
                user.passwordFailuresSinceLastSuccess += 1;
                user.lastPasswordFailureDate = DateTime.UtcNow;
            }
        }
        context.SaveChanges();  ----THIS IS WHERE IT FALLS OVER
         -- some other code here 
    }

El código anterior funciona perfectamente bien con SQL Server 2008, pero está cayendo solo con MySQL.¿Alguna idea de cómo puedo resolver esto por favor?

No tengo ningún desencadenante definido en la mesa subyacente por cierto.La aplicación es MVC3 con código EF primero. Gracias,

¿Fue útil?

Solución

Si alguien más está teniendo este problema, el problema fue con el GUID como yo.Para superar esto, agregue lo siguiente a su cadena de conexión

GUIDES OSD= VERDADERO

Así, por ejemplo, mi cadena de conexión se ve así ahora.

<add name="MyDB" connectionString="Server=localhost; Database=mydatabase; Uid=user; Pwd=mypass; Old Guids=true;" providerName="MySql.Data.MySqlClient" />

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top