Question

J'essaie d'obtenir mon application MVC3 pour utiliser la base de données MySQL au lieu de SQL Server 2008. J'ai créé la base de données et les objets associés dans MySQL.Et mis à jour la chaîne de connexion dans mon fichier web.config pour référencer mysql.data.mysqlclient.

Lorsque j'exécute mon application et essayez de vous connecter, je reçois l'erreur

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.

J'ai un membre personnaliséProvider et dans le processus de validation, j'ai le suivant

 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 
    }

Le code ci-dessus fonctionne parfaitement avec SQL Server 2008, mais n'utilise que MySQL.Avez-vous une idée de la façon dont je peux résoudre cela s'il vous plaît?

Je n'ai aucun déclencheur défini sur la table sous-jacente BTW.L'application est MVC3 avec le code EF en premier. Merci

Était-ce utile?

La solution

Si quelqu'un d'autre a cette question, le problème était avec le GUID comme moi.Pour surmonter cela, ajoutez ce qui suit à votre chaîne de connexion

Old Guids= true

Donc, par exemple, ma chaîne de connexion ressemble à ceci maintenant.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top