これは簡単な質問かもしれませんが、ADO.NETエンティティフレームワークは(生成されたエンティティの)変更を自動的に追跡し、元の値を維持するため、エンティティオブジェクトに加えられた変更をどのようにロールバックできますか?
ユーザーがグリッドビューで「顧客」エンティティのセットを編集できるフォームがあります。
これで、[承諾]と[元に戻す]の2つのボタンができました。[承諾]をクリックすると、呼び出しContext.SaveChanges()
が行われ、変更されたオブジェクトがデータベースに書き戻されます。「元に戻す」をクリックすると、すべてのオブジェクトが元のプロパティ値を取得できるようになります。そのためのコードは何でしょうか?
ありがとう
Context.Refresh()
に、元に戻す操作がないというあなたの主張の反例ですか?Refresh()
コンテキストを破棄してすべての追跡された変更を失うよりも、使用する方が(つまり、特定のエンティティをより簡単に対象とすることができる)ようです。