Как получить Entity Framework для обновления сложных типов? - PullRequest
41 голосов
/ 12 мая 2011

Я использую Entity Framework (EF) для создания сложного типа из хранимой процедуры.Недавно хранимая процедура изменилась (было добавлено больше возвращаемых значений. Я хотел бы обновить сложный тип, который сопоставляется с этой хранимой процедурой. Это возможно, и если да, то как? В настоящее время я удаляю импорт функции и сложный тип каждый раз, когдаизменения хранимых процедур, что, скорее всего, не лучший подход.

Ответы [ 2 ]

113 голосов
/ 14 мая 2011

Я нашел другой способ сделать это, не удаляя сложный тип. Вы можете обновить ваш сложный тип, а Visual Studio добавит любые измененные столбцы. Вот как это сделать:

  1. Откройте файл .edmx и перейдите в браузер модели.
  2. Если ваш сохраненный процесс изменился, щелкните правой кнопкой мыши любую белую область в браузере моделей и выберите «Обновить модель из базы данных», нажмите «Готово». Это обновит вашу хранимую процедуру.
  3. Теперь перейдите к XModel.edmx> XModel> EntityContainer: XEntities> Импорт функций (X - это имя вашей сущности) и щелкните правой кнопкой мыши тот, который вам нужно обновить. Выберите Изменить.
  4. Нажмите «Получить информацию о столбце». Теперь рядом с переключателем Complex Type есть кнопка Update. Нажмите, чтобы обновить комплексный тип, а затем нажмите кнопку ОК.

Это должно сделать это!

0 голосов
/ 27 февраля 2015

Есть более простой способ добиться этого, посмотрите здесь на SO.Он добавляет метаинформацию к хранимой процедуре, которую EF использует для генерации подходящего типа возврата.

Часть метаинформации хранимой процедуры не выполняется, она просто сообщает, какие столбцы и типы данных она возвращает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...