Подтвердить что ты не робот

Сохраненные процедуры и обновление EDMX

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

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

У меня была такая же проблема. Добавлен новый столбец и переименован в существующий столбец. Я обновил EDMX через модель обновления из базы данных, но никаких изменений в EDMX не было, и, очевидно, во время выполнения он терпит неудачу. Как следует обновлять хранимую процедуру с помощью Entity Framework?

enter image description here

Я удалил proc, восстановил модель, удалил файлы cs для proc, скомпилировал, затем снова добавил процедуру в базу данных, обновил модель и ударил! Он добавляет одну и ту же модель 3 раза, причем только последняя является правильной. Почему он продолжает возвращать старые версии?

4b9b3361

Ответ 1

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

Ответ 2

(Это решение для EF 6. Я не пробовал в других версиях EF. Он работает хорошо.)


Перейдите в браузер моделей. MyStoreProc - это имя хранимой процедуры (в качестве примера). MyStoreProc появится в трех местах.

  • 1-е место - под сложными типами → как MyStoreProc_result
  • 2-е место - под функцией Импорт → как MyStoreProc
  • 3-е место - в сохраненной Procdures/Functions → как MyStoreProc

Удалите все три из модели. Сохраните edmx (щелкнув в окне, затем ctrl + S). Затем щелкните правой кнопкой мыши и щелкните по обновлению модели из базы данных. Затем добавьте обновленную хранимую процедуру и снова сохраните.

Решено без всяких хлопот:)

Ответ 3

Прежде всего, обновите свой SP с помощью "Обновить модель из базы данных", если он работает, отлично, если нет, и выбрасывает одно и то же исключение, выполните следующие шаги. 1.Double Нажмите на .edmx файл. 2. В браузере моделей выберите "Удалить СП" из сложных типов, импортов функций и хранимых процедур/функций. 3. Сохранить все. 4.Добавьте снова свой SP через "Обновить модель из базы данных". 5. Сохраните все.