EntitySet に変更を加えた Linq-to-SQL コンテキストがあります。最後に を呼び出してから行ったすべての変更を削除したいと考えていますSubmitChanges()
。次のメソッドを使用して、コンテキストの状態を元に戻します。
public static void RevertChanges(this DataContext context)
{
var changeSet = context.GetChangeSet();
var inserts = changeSet.Inserts.ToList();
var deleteAndUpdate = changeSet.Deletes.Concat(changeSet.Updates).ToList();
foreach (var inserted in inserts)
{
var table = context.GetTable(inserted.GetType());
table.DeleteOnSubmit(inserted);
}
if (deleteAndUpdate.Count > 0)
{
context.Refresh(RefreshMode.OverwriteCurrentValues, deleteAndUpdate);
}
}
EntitySet
これは、テーブルに基づくが更新されず、変更が保持されることを除いて、正常に機能します。
の変更を拒否する最善の方法は何EntitySet
ですか?