У меня есть контекст Linq-to-SQL с изменениями в EntitySet.Я хочу избавиться от всех изменений, которые я внес в него с тех пор, как последний раз звонил 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
?