配置文件中找不到连接字符串。但它就在那里

时间:2014-04-21 22:33:47

标签: c# entity-framework

我花了一整天的时间用谷歌搜索来解决这个问题。我在这个问题上发现的每个帖子似乎都有相同的解决方案。将连接字符串放在启动项目的配置文件中。

我有两个项目。一个用于EDMX,另一个用于网站项目。我在两个文件中都有连接字符串,但仍然收到错误。我已经尝试了一切涉及操作配置文件以使其工作。我已经尝试将连接字符串放在我的解决方案中的所有配置文件中,删除或添加Entity Framework配置部分到配置文件,以及使用nuget卸载并重新安装EF 5。

我继承了这个解决方案,所以我不知道它是如何创建的,除了它是数据库优先。

连接字符串

<add name="StoreContext" connectionString="metadata=res://*/Store.csdl|res://*/Store.ssdl|res://*/Store.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=*****;initial catalog=*****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

错误:

No connection string named 'StoreContext' could be found in the application config file.

3 个答案:

答案 0 :(得分:1)

我一直在那里,并为这个问题付出了努力。

解决方案是使用 NuGet 将Entity Framework 6添加到您的应用程序中。这将自动为您生成正确的连接字符串,并完全自动设置您的app.config

设置app.config的NuGet向导非常聪明:如果已经有一些不好的设置,它将删除它们并添加好的条目。

有关详细信息和分步指南,请参阅我的回答:Upgrade from Entity Framework 5 to 6

答案 1 :(得分:0)

试试这个:   - 删除(或注释掉)web.config中的连接字符串   - 删除嵌套在edmx中的model.tt文件   - 双击edmx文件并右键单击空白区域,然后单击“#34;从数据库更新模型”#34;。这将要求您提供新的连接字符串。

如果您不删除原件,则无法完成向导。

或者,升级到6.1,你的麻烦就会消失。

答案 2 :(得分:0)

我会检查以确保启动项目中的连接字符串是正确的。这通常是我得到同样错误的地方,并且几乎总是通过将连接字符串从带有EDMX的Data项目复制到启动项目来解决。

我还建议你检查一下你是否正在导入EDMX项目的引用,但我认为如果你得到了你所描述的错误,那么你就是这样做的。已经这样做了。

我之前看到的另一件事是你需要获得两个项目的实体框架。前几天我遇到了与此类似的问题(无法记住确切错误),将EF安装到启动项目中解决了问题。