Восстановление из DuplicateKeyExceptions - PullRequest
1 голос
/ 19 июля 2011

У меня есть приложение linq to SQL, над которым я работаю.Я создаю новый элемент и пытаюсь отправить его в базу данных (вставить).Время от времени возникает исключение дублирующегося ключа, которое на самом деле ожидается время от времени.Проблема в том, что, как только сгенерировано исключение, я не могу вставить действительные элементы.Это продолжает давать мне ту же ошибку.Перезапуск приложения решает проблему, и я могу вставить новые значения.Идеи?

1 Ответ

1 голос
/ 19 июля 2011

Если SubmitChanges не удается, все ожидающие изменения сохраняются для повторной попытки.Это позволяет перехватить исключение, обновить объекты и повторить попытку.

Если это проблема, возможно, вы долго храните свой DataContext.Я предполагаю, что вы повторяете, используя тот же DataContext.DataContext должен быть очень недолговечным объектом, который располагается сразу после SubmitChanges.

. Альтернативой является проверка значений, возвращаемых свойством DataContext.GetChangeSet() или ChangeConflicts, исправление ошибок и повторная попытка.представить.Для удаления объекта из списка ожидающих вставок можно использовать DeleteOnSubmit().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...