«... произошла ошибка при обновлении контекста объекта. Возможно, ObjectContext находится в несовместимом состоянии ...» - PullRequest
5 голосов
/ 13 февраля 2012

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

Я только что создал новый большой метод, который также добавляет намного больше данных в базу данных.

Когда я вызываю это, кажется, что он работает нормально при первом запуске, но, если я запустил его снова через несколько минут после предыдущей попытки, я получаю следующую ошибку:

Изменения в базе данных были успешно зафиксированы, но произошла ошибка произошло при обновлении контекста объекта. ObjectContext может быть в противоречивом состоянии. Внутреннее сообщение об исключении: AcceptChanges не может продолжаться, потому что значения ключа объекта конфликтуют с другим Объект в ObjectStateManager. Убедитесь, что значения ключей уникальный перед вызовом AcceptChanges.

Я не уверен, как это исправить, кто-нибудь может что-нибудь посоветовать? (кроме как не запускать это в течение нескольких минут после последней попытки!).

Ответы [ 2 ]

2 голосов
/ 29 мая 2013

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

Определите ключи в файле EntityTypeConfiguration как

this.HasKey(f => new { f.ID1, f.ID2 });
0 голосов
/ 13 февраля 2012

Возможный дубликат:

Здесь вы найдете полезные ссылки по работе с объектами самоконтроля и диспетчером состояний объектов

...