Как правильно удалить и повторно добавить Entity Data Model - PullRequest
16 голосов
/ 06 января 2011

новичок в Entity Framework здесь. Использование VS 2010 и SQL Server 2008 Express DB.

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

Я попадаю в раздел «Выберите подключение к данным» в Мастере модели данных объекта и отмечен флажок «Сохранить параметры подключения к объекту в Web.config как:». Однако к моему существующему имени добавлена ​​1. Например, MyDatabaseEntities теперь является MyDatabaseEntities1. Конечно, я не хочу, чтобы "1" добавлялся. Я уничтожил существующую строку подключения в Web.config и удалил все ссылки на это имя в моем решении. Тем не менее, когда я пытаюсь продолжить, мне выдается следующая ошибка:

"MyDatabaseEntites" конфликтует с существующим именем свойства в настройках приложения. Пожалуйста, выберите другое имя "

Я не могу найти ссылку на это имя нигде в решении. Я могу снять эту опцию, и она будет продолжена, но она все равно не добавит две таблицы в базу данных. Затем я полностью закрыл все, перезагрузил и попытался снова. На этот раз я не получил ошибку выше, но две из трех моих новых таблиц по-прежнему не добавляются в модель edmx.

Любые идеи приветствуются. Также кажется, что это все еще довольно глючно даже в VS2010 / .NET 4. Помогите восстановить мою веру ... Я чувствую, что на данный момент я отказываюсь от Entity Framework. Основываясь на своем опыте и некоторых других проблемах, опубликованных здесь, я чувствую, что собираюсь потратить больше времени на поиски странностей Entity Framework, чем на написание полезного кода.

ОБНОВЛЕНИЕ: Я нашел решение. Дизайнер не отображает ошибки. Вы должны посмотреть в нативный XML (файл edmx), чтобы увидеть ошибки. Смотрите здесь: ADO.NET Entity Framework: мастер обновления не будет добавлять таблицы

Ответы [ 7 ]

20 голосов
/ 25 марта 2012

Ошибка вызвана оставшимися строками соединения в настройках в файле «App.Config» (см. Обозреватель решений), который находится в этом разделе: «connectionStrings» (в угловых скобках)

Просто удалите его изесть.

4 голосов
/ 08 июня 2012
  1. Перезапустите IIS, если вы разрабатываете веб-приложение.
  2. Перезапустите Visual Studio после удаления EntityDataModel строки строки подключения из web.config или app.config
  3. Добавить новыйСущность Data Model и переименуйте ее как старое имя,
1 голос
/ 31 марта 2017

Дважды проверьте строки подключения и продолжайте прокручивать вправо. Чаще всего, когда это происходит со мной, Visual Studio добавляет строку подключения позади другой. Я делал это пару раз и задавался вопросом, где была конфигурация моего приложения (нет, нет конфигурации приложения, только веб-конфигурация в mvc), поэтому диалог немного сбивает с толку. Конечно же, скорее всего, эта строка подключения скрывается прямо за другой!

1 голос
/ 06 января 2011

Я не знаю конкретного ответа на вашу проблему, но думаю, что могу порекомендовать подход, который разрешит этот конфликт.

Я обычно разбиваю свою работу по EF на отдельную библиотеку. Если я работаю над Cyberdyne.Terminator, я создаю библиотеку классов EF под названием Cyberdyne.Terminator.Data. Таким образом, если вы хотите уничтожить модель и начать все сначала, все будет отделено от ваших зависимых файлов и, в частности, вашего web.config.

Скорее всего, ничего из этого не исправит отсутствующие таблицы. Одна вещь, которую я видел, где это происходит, это если я добавляю таблицу, а затем удаляю ее. Он больше не появится в диалоговом окне «Добавление таблиц» (и вы должны переименовать его, чтобы отобразить его). Но я думал, что это было исправлено в EF 4.0. Не знаю. Если проблема не устранена, вы можете попробовать переименовать таблицу, добавить ее заново, а затем переименовать, если она появится.

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

0 голосов
/ 06 мая 2018

На самом деле это расстраивает, так как вы пытаетесь увидеть в app.config, что если есть другая строка и вы видите только 1 строку, На самом деле то, что делает VS, иногда добавляет вторую строку в той же строке. см. эту картинку ниже

enter image description here

Похоже, есть 2 строки подключения? (На самом деле ДА)

Теперь посмотрите на эту картинку: enter image description here

Также вы можете нажать Ctrl + ED, чтобы отформатировать файл конфигурации и посмотреть, не скрывается ли где-нибудь еще вторая строка. Надеюсь, это кому-нибудь поможет.

0 голосов
/ 02 июля 2017

Просто нажмите

Ctrl + F

и в раскрывающемся списке выберите «FullSolution / CurrentProject», затем нажмите ввод.где бы это имя ни создавалось, оно покажет вам.Я попал в файл web.config .поэтому удалите сгенерированную полную линию соединения оттуда.и снова добавьте его снова.Тогда надеюсь, что вы не можете получить это сообщение снова. Спасибо ..

0 голосов
/ 17 мая 2016

мне очень жаль мой английский но решение простое. Вы должны удалить ado.net затем перейдите в app.conf и удалите строку подключения <>, ОТЛАДКА вашего проекта и, наконец, добавление новой базы данных через ado.net

TO ADD ADO.NET
RIGHT CLICK ON YOUR PROJECT NAME, THEN, ADD NEW ITEM, DATA AND SEARCH ADO.NET...

I hope help you, have good day!
angelsantacruzm
...