Вопрос

Я пытаюсь заставить мое приложение 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.
.

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

 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.Любая идея, как я могу решить это, пожалуйста?

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

Это было полезно?

Решение

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

Старый GUID= TRUE

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top