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

Подождите! какой файл конфигурации? (Строка подключения Entity Framework)

Итак, я создал свою модель сущности в отдельной библиотеке классов. Мне пришлось добавить строку подключения в файл 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 для вашего проекта библиотеки классов.

4b9b3361

Ответ 1

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

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

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

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

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

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