我继承了一个旧的vs.net 2010 WCF webservice项目来修复。它在web.config中有以下connectionString设置,以区分dev,qa和&生产与发展在尝试调试时,我无法连接到它们。希望有人可以提供帮助:
<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>
我添加的代码通过以下“using”语句建立数据库连接:
using (OrderDataContextContainer db = new OrderDataContextContainer())
{
//my code fix here
}
如果我将以下web.config连接添加到connectionStrings列表中,它连接正常(即没有附加“开发”,“QA”或“生产”):
<add name="OrderDataContextContainer" connectionString="metadata=res://<conn string here>" providerName="System.Data.EntityClient" />
然而,我不能这样做,因为我的公司需要单独的dev,qa,&amp;当我将此修复程序发送给QA团队进行测试时,我会将这些字符串用于测试。如果我不包含上述连接,则在“using”语句中收到以下错误:
在配置中找不到指定的命名连接,不打算与EntityClient提供程序一起使用,或者无效。
在运行项目之前,我创建了“开发”,“QA”和&amp;我的vs.net配置管理器中的“生产”配置&amp;将它设置为“开发”但没有运气。
知道如何通过前面提到的连接字符串来连接我的应用程序吗?
答案 0 :(得分:3)
那是因为EF
总是在.config
文件中搜索相同的连接字符串。该名称在EF
设计器中定义,通常与上下文类具有相同的名称。
您可以做的是使用web.config
转换,了解如何在项目中执行此操作:How to: Transform Web.config When Deploying a Web Application Project