Entity Framework: Генерация базы данных из модели удаляет хранимые процедуры из хранилища моделей - PullRequest
3 голосов
/ 22 июля 2011

Я использую хранимую процедуру с моделью EF 4.

Для этого я выполняю следующие шаги:

  1. Я добавляю хранимую процедуру в хранилище моделей, обновляя ее из базы данных и выбирая ее.

  2. Добавлен импорт функции для указания на хранимую процедуру

  3. Хранимая процедура возвращает результат запроса, объединяющего несколько таблиц и т. Д., Поэтому вОбласть « Возвращает коллекцию » Я указываю Сложный тип и использую кнопку Получить информацию о столбце ниже, чтобы сгенерировать возвращенный сложный тип.

Здесь возникает моя проблема: , когда я использую опцию «Создать базу данных из модели», она удаляет сопоставление хранимых процедур из хранилища моделей.

Мой вопрос:

Как использовать параметр «Создать базу данных из модели», но игнорировать сопоставление хранимых процедур?

В свойствах модели есть«Рабочий процесс создания базы данных», то есть TablePerTypeStrategy, но, очевидно, это имеет дополнительный эффект удаления хранимых процедур из хранилища модели.

Ответы [ 2 ]

2 голосов
/ 02 мая 2012

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

Чтобы обойти это, я отменяю после создания базы данных измодель на EDMX (и держите обновленный скрипт sql).Это прекрасно обновляет базу данных и восстанавливает мои хранимые процедуры и импорт функций.

0 голосов
/ 22 июля 2011

Эти два подхода не должны использоваться вместе! Сначала используйте базу данных (Обновление модели из базы данных) или сначала модель (Создание базы данных из модели). Я даже удивлен, что он также не удалил ваши хранимые процедуры в базе данных.

Когда вы выбираете Сгенерировать базу данных из модели, она удаляет все описание и отображение хранилища из вашего EDMX и генерирует новое.

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