MySql с MVC3 выдает ошибку при вызове context.savechanges - PullRequest
0 голосов
/ 08 марта 2012

Я пытаюсь заставить мое приложение MVC3 использовать базу данных MySql вместо Sql Server 2008. Я создал связанную базу данных и объекты в Mysql.И обновил строку подключения в моем файле web.config для ссылки на MySql.Data.MySqlClient.

Когда я запускаю свое приложение и пытаюсь войти в систему, я получаю сообщение об ошибке

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.

У меня есть пользовательский MembershipProvider и в процессе проверки у меня есть следующее

 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 
    }

Приведенный выше код прекрасно работает с Sql Server 2008, но работает только с MySql.Любая идея, как я могу решить это, пожалуйста?

У меня нет никаких триггеров, определенных в базовой таблице между прочим.Приложение MVC3 с EF Code First.Спасибо,

1 Ответ

0 голосов
/ 08 марта 2012

Если у кого-то еще возникла эта проблема, проблема была с Guid, как и я.Чтобы преодолеть это, добавьте следующее в строку подключения

Old Guids = true

Так, например, моя строка подключения выглядит следующим образом.

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