2016-12-30 8 views
1

Я унаследовал старый проект webservice vsnet 2010 WCF, чтобы исправить ошибку. Она имеет следующие параметры ConnectionString в web.config его, чтобы различать Деву цу, & производства & У меня возникли проблемы с подключением к ним при попытке отладки & надеясь кто-то может помочь:Проблема с настройкой строки подключения Entity Framework в web.config для dev, qa, & prod

<connectionStrings>  
    <add name="OrderDataContextContainer.Development" connectionString="metadata=res://<conn string here>" providerName="System.Data.EntityClient" /> 
    <add name="OrderDataContextContainer.QA" connectionString="metadata=res://<conn string here>" providerName="System.Data.EntityClient" /> 
    <add name="OrderDataContextContainer.Production" connectionString="metadata=res://<conn string here>" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

Кода I добавил, делает соединение с базой данных через следующие «используя» заявление:

using (OrderDataContextContainer db = new OrderDataContextContainer()) 
{ 
     //my code fix here 
} 

Если добавить следующее соединение web.config к списку ConnectionStrings, он соединяет тонкую (т.е. не «Развитие», «ОК», или «Производство»):

<add name="OrderDataContextContainer" connectionString="metadata=res://<conn string here>" providerName="System.Data.EntityClient" /> 

Однако, я не могу сделать это так, потому что моя компания требует отдельных DEV, QA, & Prod строки для того, когда я отправляю это исправление для команды QA для тестирования. Если я не включил указанное выше соединение, я получаю следующее сообщение об ошибке: «0»

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

Перед выполнением проекта, я создал «Развитие», «ОК», & «Производство» в моем изменение настроек vs.net Configuration Manager & не установите его на «развитие», но не повезло.

Любая идея, как я могу получить мое приложение для подключения через ранее упомянутые строки подключения?

+0

может быть, это [статья] (http://stackoverflow.com/questions/5811305/web-config-debug -release) может помочь вам. вам нужно добавить web.QA.Config и web.Production.config. при запуске публикации вы можете выбрать другой профиль (web.config), а затем можете преобразовать строку подключения. – kcwu

+0

Преобразования - это путь, но другой вариант - [построитель строковых цепочек] (http://stackoverflow.com/questions/19065361/making-entityframework-connection-string-dynamic), если вы хотите сделать это в коде. –

ответ

3

Это потому, что EF всегда ищет одну и ту же строку соединения в файле .config. Имя определено в дизайнере EF и обычно имеет то же имя, что и класс контекста.

Что вы можете сделать, это использовать web.config преобразования, о том, как это сделать в вашем проекте: How to: Transform Web.config When Deploying a Web Application Project

+0

Спасибо! Это сработало! – goalie35

 Смежные вопросы

  • Нет связанных вопросов^_^