Подождите! какой файл конфигурации? (Строка подключения Entity Framework) - PullRequest
18 голосов
/ 03 июня 2011

Итак, я создал свою модель сущности в отдельной библиотеке классов.Мне пришлось добавить строку подключения в файл app.config этой библиотеки классов.Затем я добавил ссылку на этот проект в свое веб-приложение.Я добавил ту же строку подключения в web.config моего веб-приложения, думая, что именно здесь Entity Framework будет читать строку подключения.

Все было хорошо, пока я не развернул свое веб-приложение.Когда я развернул, я изменил строку подключения в web.config (не app.config библиотеки классов), и я начал получать ошибки.Проведя некоторое исследование, я обнаружил, что строка соединения в web.config и app.config должна совпадать !!

Это просто глупо!Каждый раз, когда мне нужно развернуть мое веб-приложение в другой среде, я должен вернуться и изменить строку подключения в файле app.config, а затем перекомпилировать проект библиотеки классов, чтобы он мог получить обновленную строку подключения?

Кто-нибудь нашел лучший способ сделать это?Я имею в виду, я не могу быть единственным человеком, который думал о том, чтобы поместить модель сущности в отдельную сборку.

Возможное решение (если вы используете EF 4.1): Поскольку единственная причина, почему нам нужноиметь app.config внутри проекта библиотеки классов для дизайнера EF.Если мы откажемся от подхода дизайнера и перейдем к Code-First (EF 4.1), вам не понадобится файл app.config для вашего проекта библиотеки классов.

1 Ответ

12 голосов
/ 03 июня 2011

Мы столкнулись с такой же ситуацией.Я попросил каждого разработчика когда-либо компилировать сборку EF только с первой выбранной строкой соединения.

Таким образом, при развертывании требуется только одна строка подключения в файле web.config.

В конце концов, если каждая машина разработки и сервер развертывания имеют правильную информацию о соединении (для этой машины)первая (и, надеюсь, только) строка подключения (т. е. не ConnectionString4), жизнь проста.

По сути, дополнительные строки подключения добавляются дизайнером в строку подключения dev, когда строка подключения по умолчанию (последняя выбрана)не могу подключиться

Кроме того, нет причин чувствовать себя плохо из-за помещения слоя данных в отдельную сборку.Иногда это предпочтительнее.

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

...