0

MVC3 アプリケーションで Sql Server 2008 の代わりに MySql データベースを使用しようとしています。関連するデータベースとオブジェクトを 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.

カスタム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 でのみ失敗します。どうすればこれを解決できますか?

基になるテーブルで定義されたトリガーはありません。アプリケーションは、EF Code First の MVC3 です。ありがとう、

4

1 に答える 1

0

他の誰かがこの問題を抱えている場合、問題は私と同じようにGuidにありました。これを克服するには、接続文字列に次を追加します

Old Guids = true

たとえば、私の接続文字列は次のようになります。

<add name="MyDB" connectionString="Server=localhost; Database=mydatabase; Uid=user; Pwd=mypass; Old Guids=true;" providerName="MySql.Data.MySqlClient" />
于 2012-03-08T12:06:03.097 に答える