«Обновить модель из базы данных» не работает в файле сущностей .edmx. Моя база данных DB2

#visual-studio-2010 #entity-framework #db2

#visual-studio-2010 #entity-framework #db2

Вопрос:

Я пытаюсь отразить новые изменения или добавить новую таблицу в мою модель в файле EDMX, используя «Обновить модель из базы данных». Затем я получаю это сообщение об ошибке в мастере обновления, в котором говорится «Ошибка при получении информации базы данных. Элемент с тем же ключом уже добавлен.»

Я использую базу данных DB2 и VS 2010.

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

Приветствуется любая помощь.

Ответ №1:

Я получал ту же ошибку. В моем случае с DB2 9.5 LUW решением было удалить дублирующиеся именованные хранимые процедуры на сервере. DB2 позволяет вам иметь несколько сохраненных процедур с одинаковым именем, но разными определениями (т. Е. Разными параметрами). Но, по-видимому, это несовместимо с Entity Framework. К счастью для меня, дубликаты были фактически неиспользуемыми старыми версиями.

Альтернативой является редактирование вашего EDM-файла в режиме редактора XML.

Ответ №2:

Я следовал решению, предоставленному vikrantislav. И в дополнение к этому я внес еще одно изменение. По умолчанию EF tool извлекает объекты из всех завершающих схем. Поэтому убедитесь, что у вас нет повторяющихся процедур хранения ни в одной из этих схем, или измените свойства подключения для фильтрации по определенной схеме. В моем случае я отфильтровал по определенной схеме, поскольку я не хочу путаться с чужими процедурами хранения в других схемах. И теперь начал работать мастер «обновить модель из базы данных». какое облегчение.

Фильтр схемы в окне свойств подключения

Комментарии:

1. Не могли бы вы, пожалуйста, объяснить человеку, который голосовал против, в чем заключалась проблема, с которой вы столкнулись, когда мой ответ / решение не помогло ее решить?