我收到以下错误:
在配置中找不到指定的命名连接,不打算与EntityClient提供程序一起使用,或者无效。
我刚创建了我的第一个EF项目。这是一个MVC应用程序,我在MVC项目中添加了实体模型。我还添加了一个DataAccess类和一个使用NUnit运行测试的类。最后,我将添加一个引用DataAccess类的服务类。所以,代码目前看起来像这样(我只是试图通过测试来证明EF正在做它的事情):
暂时,我只是想从一个表中返回所有行/一列。请记住,所有这些文件都在一个项目中。我已经阅读了很多,这个问题源于多个项目,但这似乎并不适用于我的情况。我已经检查了“main”web.config文件。连接字符串看起来没问题。我也将同一个配置部分(即connectionStrings)复制到特定于调试的配置文件中,但这并没有什么区别。有什么想法我为什么会看到这个错误?
谢谢, 杰
连接字符串:
这是创建实体访问文件时对话框中的连接字符串(数据源是两个字符串中的句点[即本地主机]):
元数据= RES:// /EntityDataModel.csdl|res:// /EntityDataModel.ssdl|res://*/EntityDataModel.msl;provider=System.Data.SqlClient;provider connection string =“Data Source = .; Initial Catalog = URIntake; Integrated 安全=真“
这是web.config文件中的连接字符串。出于所有实际目的,它们似乎是相同的:
元数据= RES:// /EntityDataModel.csdl|res:// /EntityDataModel.ssdl|res://*/EntityDataModel.msl;provider=System.Data.SqlClient;provider connection string =“data source = .; initial 目录= URIntake;集成 安全= TRUE; multipleactiveresultsets = TRUE;应用=的EntityFramework“
答案 0 :(得分:1)
微软Zlatko Michailov 说,
app.config不在exe所在的二进制目录中。请做 以下内容:
目测验证带有预期内容的app.config是否在编译exe的目录中。 (项目中存在 根目录是不够的。)
- 醇>
在您的应用中使用System.Configuration.ConfigurationManager来检查您的exe正在使用的app.config的内容。
我也在查看连接字符串的内容,我可以说 它可能无法在多项目环境中工作(除非你 在每个项目中复制了EDM。)
原因是“。” 解析到加载exe的目录。如果你想 重用相同的EDM,你至少要在后面做几步 路径,然后导航到EDM所在的项目,例如 “...... \ Proj1 \ AdventureWorksModel”。
此外,您可以考虑 使用| DataDirectory |宏 - 当您加载AppDomain时,您可以 设置| DataDirectory |指向EDM的确切目录, 然后在连接字符串中使用它,例如 “| DataDirectory目录| \ AdventureWorksModel”
如果你正在做一个 在ASP.NET项目中,可以使用“〜”表示项目根目录。在 在后一种情况下,您无法在项目之外引用模型 等级虽然。
了解更多信息Check Here
更新1:
您可以尝试以下步骤
清除 web.config 文件中的连接字符串内容,如下所示
然后从项目中删除 *。edmx 文件
重新创建,如下所示(示例一)。别忘了勾选“将web.config中的实体保存设置保存为:” < / p>
最后一步:然后转到 web.config文件并检查您的连接字符串与完全相同在“实体连接字符串:”上面的步骤(我在图像上方的红色标记处显示)。
我希望这会对你有所帮助。