Как вы очищаете изменения в LinqToSql?

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

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

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

Пожалуйста помоги. Благодарю.

Ответы на вопрос(2)

(или DeleteAllOnSubmit) для удаления вставок, следующее фактически отменит любые обновления, а также:

// clears any updates.  
ChangeSet changes = dataContext.GetChangeSet();
dataContext.Refresh(RefreshMode.OverwriteCurrentValues, changes.Updates);   
 15 июл. 2014 г., 18:54
Но я думаю, что нет необходимости очищать вставки, так как вы можете поставитьInsertOnSubmit() в блок if-else, который зависит от результата диалога.
 15 июл. 2014 г., 18:48
+1 Работает для обновлений, но не для вставок.
Решение Вопроса

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

 HAdes27 июл. 2009 г., 16:51
о хорошо, так что есть старая версия, которую я могу использовать, где это, пожалуйста? Я понимаю, что вы слишком много загружаете, но я не вижу альтернативы, спасибо.
 27 июл. 2009 г., 17:09
GetOriginalEntityState () для каждой таблицы
 15 июл. 2014 г., 19:08
На мой взгляд, было бы плохой идеей повторно запросить отдельный текстовый текст. Если вы не обновляете все таблицы, существует возможность «одного и того же ключа»; произошла ошибка Если вы обновляете и используете немедленную загрузку, это может быть дорогой операцией. Я бы использовал решение HAdes.
 HAdes27 июл. 2009 г., 16:19
так вы хотите создать новый текстовый текст и снова получить данные? Если так, то это очень медленно, так как в моей коллекции много предметов. Я надеялся, что где-то будет храниться копия объекта, чтобы можно было откатить любые изменения (например, функцию отмены).
 27 июл. 2009 г., 16:22
В трекере изменений есть старая версия; но идея контекста данных заключается в том, что он является единицей работы; не база данных. Похоже, вы просто загружаете в него слишком много данных, чтобы начать с ...

Ваш ответ на вопрос