2016-05-19 15 views
1

Я пытаюсь обновить свой edmx, RIGHT CLICK -> UPDATE MODEL FROM DATABASE. И каждый раз, когда я пытаюсь обновить сообщение об ошибке появится «Запись с тем же ключом уже существуетСреда Entity Framework edmx не обновляется. Появится сообщение «Запись с тем же ключом уже существует».

Может кто-то приятель, пожалуйста, помогите?

. enter image description here»

+0

после стольких исследований в Интернете я тоже нашел это. Но что такое дубликат? как справиться с этим? –

+0

Есть несколько советов, которые вы должны проверить: => Обычно у вас есть два одинаковых узла в EntitySetMapping. откройте свой файл edmx в текстовом редакторе, он может не отобразить дубликат вам от дизайнера. –

+0

Сначала переключитесь на код. - см. http://blogs.msdn.com/b/adonet/archive/2014/10/21/ef7-what-does-code-first-only-really-mean.aspx –

ответ

2

Иногда дубликат может не быть показан на диаграмме EDMX , это может быть кодовая сторона. Иногда EF может немного запутаться, но не слишком хорошо справляется с этими отверстиями в петле.

В дополнение к предложению Фернанды, самый чистый способ - удалить ваш файл edmx и снова перенастроить строку соединения.

В случае, если вы этого не хотите, вы можете удалить все таблицы & в своем edmx, сохранить его и посмотреть, не по-прежнему ли происходит эта же ошибка. Если такая же ошибка больше не возникает, добавьте все и сохраните ее.

+0

Благодарим за ответ. Я думаю, что это единственное решение. Создание дублирующего ключа практически невозможно. Я должен удалить и восстановить его. –

1

Обратите внимание, что EDMX подход will be deprecated in Entity Framework 7:

«модель обновления из базы данных» представляет собой процесс, который позволяет постепенно тянуть дополнительные объекты базы данных (или изменения существующих объектов базы данных) в модели EDMX. К сожалению, реализация этой функции была невелика, и вам часто приходилось терять настройки, которые вы сделали для модели, или вручную вручную исправить некоторые изменения, которые мастер попытался применить (часто отбрасывая редактирование xml).

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

Таким образом, рекомендованный подход для EF 7 заключается в том, чтобы сделать обратную разработку базы данных в код, а не в edmx, что-то, называемое кодовым вторым подходом раньше.

 Смежные вопросы

  • Нет связанных вопросов^_^