Entity Framework и хранимые процедуры с пользовательскими объектами - PullRequest
2 голосов
/ 15 августа 2011

У меня есть существующий проект EF4.1, который работает просто отлично.Я добавил новый БД в БД, который возвращает новый тип сущности (существующую сущность с некоторыми дополнительными полями).

Проблема в том, что когда я пытаюсь импортировать функцию в EF - она ​​выигралане создавай мой сложный тип.мастер пишет, что «для этой модели не было настроено соединение с базой данных».Что странно - потому что он видит новый SP и все.

Я пытался создать свой собственный, новый сложный тип, но он не отображает поля по мере необходимости (некоторые проблемы с преобразованием типов)

Есть идеи, что можно сделать?

Спасибо!

Ответы [ 6 ]

4 голосов
/ 17 ноября 2011

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

<connectionStrings configSource="some_other_file.config">

В мастере «Обновление моделей» есть ошибка, из-за которой он не будет искать во внешнем файле строки подключения, и я не могу оставить строку подключения в теге connectionStrings, поскольку она должна быть пустой, иначе при сборке возникнет ошибка.

Обходной путь для меня - использовать мастер обновления, установите флажок «Сохранить строку подключения сущности в Web.config», а затем добавьте все мои импортные функции. Когда я закончу, я закомментирую connectionString, чтобы мой проект был построен. В следующий раз раскомментируйте эту строку подключения объекта перед обновлением моделей.

Раздражает, но, по крайней мере, есть способ заставить его работать.

1 голос
/ 11 февраля 2014

Для меня, как я заставил это работать в моем модельном проекте. Были другие строки подключения, которые я оставил там, где было «server =» (не относящихся к EDMX). Я просто удалил эти строки подключения, и мастер обновления EDMX работает, как объявлено.

Сообщение об ошибке: не удалось обновить файл App.Config из-за следующей исключительной ситуации: «Ключевое слово« server »не поддерживается».

0 голосов
/ 12 марта 2015

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

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

Вот ссылка моего решения, есть видео и все, но я пытаюсь понять, как это сделать без удаления модели или добавлениястрока подключения VIDEO LINK ИЛИ решение по переполнению стека , поскольку пока еще нет способа отобразить процедуру хранения. Я использую класс, который моя компания должна получить, имеет таблицу из процедуры сохранения и затем отправляетданные в виде строки JSON, если вы хотите, чтобы это решение дало мне знать, и тогда я отправлю код с объяснением (это делается со строкой соединения .dsn и ODBC «Открытое соединение с базой данных»).

0 голосов
/ 19 января 2015

Мое решение этой же проблемы (VS2013) было следующим:

  1. Перейти к обозревателю модели
  2. Щелкните правой кнопкой мыши YourModel.edmx
  3. Обновить модель сБаза данных
  4. Затем мне предложили выбрать соединение.Я выбрал нужное соединение и перешел к следующему экрану.
  5. Добавить / Обновить / Удалить то, что вам нужно.
  6. Выберите Готово и вуаля, соединение здесь.
0 голосов
/ 03 сентября 2013

, если он все еще не работает, удалите другие строки подключения. и повторно добавить новое. та же проблема решается этим. удалив всю строку соединений и сначала добавив строку соединения платформы Entity, затем добавив остальные, но изменив имя.

0 голосов
/ 28 октября 2011

Я предполагаю, что свойство ConnectionString модели сущностей пусто. Проверьте в браузере модели.

Самый простой способ исправить это - удалить все строки подключения в файлах .config. Сделайте поиск для

connectionstring="

Удалить строки (строки) полностью или прокомментировать их / их с помощью

Удалите свой edmx и воссоздайте его. Убедитесь, что установлен флажок «Сохранить параметры подключения объекта в Web.config как:».

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

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