MVC3を使用したMySQLは、Context.SaveChangeを呼び出すときにエラーが発生します

StackOverflow https://stackoverflow.com//questions/9616259

質問

SQL Server 2008の代わりにMySQLデータベースを使用するようにMVC3アプリケーションを取得しようとしています。MySQLに関連付けられているデータベースとオブジェクトを作成しました。そしてMySQL.Data.MysqlClientを参照するために、web.configファイルの接続文字列を更新しました。

アプリケーションを実行してログインしようとすると、エラーが発生しています

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.
.

カスタムメンバーシッププロバイダーを持っていて、検証プロセス内には、次のがあります。

 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にはトリガーが定義されていません。アプリケーションは最初にEFコードを持つMVC3です。 ありがとう、

役に立ちましたか?

解決

他の誰かがこの問題を抱えている場合、問題は私のようにGUIDと同じです。これを乗り越えるには、接続文字列に次のものを追加してください。

古いGUIDS= true

SOの場合、私の接続文字列はこのようになります。

<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