我有一个带有 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
什么?