エンティティ状態の変更

entity-framework

質問

私は現在削除されたアイテムの束を持つエンティティモデルを持っています、状態は削除されています。それらを「元に戻す」方法はありますか?どのアイテムを元に戻したいかはわかっていますが、そのアイテムを元に戻す方法がわかりません。理想的には、元の状態に戻したいと思います。

受け入れられた回答

接続コンテキストをコミットしないという選択肢がありますか? - objectContext.SaveChanges()を呼び出さずにObjectContextを破棄します。もちろん、保存していない特定の変更があったとしても、それらは持続しません。

objectContext.DeleteObject(x)objectContext.DeleteObject(x)場合は、 objectContext.DeleteObject(x)ことはできませんが、それでも変更を保存できます。

ObjectStateEntry objectStateEntry = objectContext.ObjectStateManager.GetObjectStateEntry(x);

// objectStateEntry.State is not setable 

ObjectStateEntryにはOriginalValuesプロパティがあるので、理論的には、元の変更から不要な変更を除いたコレクションを慎重に再作成し、objectContextを終了し、新しい変更を開いて、そこから不要な変更を除いて再作成できます。おそらく面倒な価値はありませんが、現時点で削除対象としてマークを解除するための文書化された方法はありません。


人気のある回答

電話をかけた後

objectContext.DeleteObject(x)

オブジェクトxの元に戻すをシミュレートすることができます

objectContext.Detach(x); objectContext.Attach(x)



Related

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