MySql com MVC3 dá erro ao chamar context.savechanges
-
09-12-2019 - |
Pergunta
Estou tentando fazer com que meu aplicativo MVC3 use o banco de dados MySql em vez do Sql Server 2008.Eu criei o banco de dados e os objetos associados no Mysql.E atualizei a string de conexão em meu arquivo web.config para fazer referência a MySql.Data.MySqlClient.
Quando executo meu aplicativo e tento fazer login, recebo o erro
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.
Tenho um MembershipProvider personalizado e dentro do processo de validação tenho o seguinte
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
}
O código acima funciona perfeitamente com o Sql Server 2008, mas está falhando apenas com o MySql.Alguma ideia de como posso resolver isso, por favor?
A propósito, não tenho nenhum gatilho definido na tabela subjacente.A aplicação é MVC3 com EF Code First.Obrigado,
Solução
Se mais alguém está tendo esse problema, o problema estava com o Guid, como eu pensava.Para superar isso, adicione o seguinte à sua string de conexão
Guias antigos = verdadeiro
Por exemplo, minha string de conexão está assim agora.
<add name="MyDB" connectionString="Server=localhost; Database=mydatabase; Uid=user; Pwd=mypass; Old Guids=true;" providerName="MySql.Data.MySqlClient" />