Error:オブジェクトはObjectStateManagerに見つからなかったため削除できません

c# entity-framework linq-to-entities

質問

ここでEntity Frameworkのハンドルを取得しようとしていると私はいくつかのスピードバンプを打っている...私は正常に動作し、テストされているGet()メソッドを持っている

   public static void Delete(string name)
    {
        J1Entities db = new J1Entities();
        db.DeleteObject(Get(name));
        db.SaveChanges();
    }

しかし、私は次のエラーが発生します: エラー:オブジェクトがObjectStateManagerに見つからなかったため、オブジェクトを削除できません。

デバッガを実行しましたが、DeleteObject内のオブジェクトは正しいのですが、何が足りないのですか?ありがとうございました。

受け入れられた回答

各EFオブジェクトは、それを作成したマネージャと密接に関連しています(よりよい言葉を求めて)。またはそれが関連付けられています。あなたはあなたのGetメソッドにdbを渡さないので、私は、 Getがそれ自身のJ1Entities使ったか、あるいはオブジェクトがスタンドアロンで作られた(おそらく逆シリアル化された)かのどちらかを仮定します。

それを削除するために、それは最初にそれについて知らなければなりません。それはマネージャーにオブジェクトを取り付けることによって、意味するかもしれない-が、この場合には、簡単にオプションを渡すことだけであるように思えるdbGetするように、 Getいるので(同じコンテキストで実行されてdb自動的に作成されるオブジェクトを添付します自体)。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ