Как вы очищаете изменения в LinqToSql? - PullRequest
2 голосов
/ 21 июля 2009

В моем приложении WPF есть поле со списком, которое привязано к моему списку объектов в моей модели представления. Когда пользователь вносит изменения в выбранный объект и затем выбирает другой элемент перед сохранением, мне нужно отменить сделанные изменения.

Я думал, что мог бы использовать dataContext.GetChangeSet (). Updates.Clear (), но по какой-то причине коллекция доступна только для чтения.

Я также пытался использовать dataContext.Refresh, но это тоже не работает, так как объект не существует в базе данных, я создал его вручную из SP.

Пожалуйста, помогите. спасибо.

Ответы [ 2 ]

3 голосов
/ 30 июня 2010

Помимо использования подхода Марка с использованием DeleteOnSubmit (или DeleteAllOnSubmit) для удаления вставок, следующее фактически отменит любые обновления, а также:

// clears any updates.  
ChangeSet changes = dataContext.GetChangeSet();
dataContext.Refresh(RefreshMode.OverwriteCurrentValues, changes.Updates);   
2 голосов
/ 21 июля 2009

Ваш лучший выбор, вероятно, заключается в повторном запросе в отдельный контекст данных. Вы можете отменить вставку (из набора изменений), используя DeleteOnSubmit (и наоборот), но я бы предпочел этого не делать.

...