1

EntityFramework 4を使用して、MySQLデータベースからいくつかのレコードを削除しています。これは私のコードです:

using (Entities context = new Entities())
                {
                    foreach (games_designer_binder binder in context.games_designer_binder.Where(c => c.gameId == inGameId))
                        context.games_designer_binder.DeleteObject(binder);

                    context.SaveChanges();
                    return true;
                }

これにより、次の例外がスローされます。

SQL構文にエラーがあります。'(SELECT \ n games_designer_binder.gameId、games_designer_binder。at line 1)の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

なんで?これを修正するには何が必要ですか?

編集:

これは正常に機能します:

context.games_designer_binder.Where(c=> c.designerId == 22 && c.gameId == 1276).FirstOrDefault();
4

1 に答える 1

0

コレクションを繰り返し処理しているときにエンティティを削除できないと確信しています。

これを試して :

using (Entities context = new Entities())
    {
        var binders = context.games_designer_binder.Where(c => c.gameId == inGameId).ToList();

        foreach (var binder in binders)
            context.games_designer_binder.DeleteObject(binder);

        context.SaveChanges();
        return true;
    }

注: games_designer_binder コレクションを変更して、実際にはモデル バインダーのコレクションであることを反映することをお勧めします。つまり、games_designer_binderS のように S で終わるようにすることをお勧めします。これは、コレクションとエンティティ自体を台無しにする可能性があるためです。

于 2013-10-24T16:33:41.520 に答える