0

レコードを削除しようとすると、次のエラーが表示されます。

InvalidOperationException - ObjectStateManager で見つからなかったため、オブジェクトを削除できません。

public ActionResult Delete(CustomerModel customer)
        {
            db.Customer.Remove(customer);
            db.SaveChanges();
            return View();
        }

更新: bebugger をチェックインしました。顧客は完全に空です..したがって、データベースはその特定のレコードを削除できません。

理由はありますか?

4

1 に答える 1

2

顧客オブジェクトがdbというDbContextにロードされていません(コードから完全に明確ではないDbContextだと思います)。

Entity Frameworkでは、使用しているDbContextは、動作しているオブジェクトを認識している必要があります。dbにロードする以外の方法で顧客を作成したようです。

次のようにDbContextに追加できます。

db.Attach(customer);

次に、それを削除して変更を保存します。

詳細については、を参照してください。

http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-entity-states.aspx

特にあなたの場合、段落「既存のエンティティをコンテキストにアタッチする」

更新(更新に基づく)

そもそもどうやって顧客を作ったのですか?その詳細がなければ、それが完全に空である理由を理解するのは単なる推測です。

于 2012-07-29T03:25:40.433 に答える