Entity framework Can';无法连接实体框架
Entity framework Can';无法连接实体框架,entity-framework,asp.net-mvc-4,Entity Framework,Asp.net Mvc 4,我得到以下错误:
指定的命名连接在配置中找不到、不打算与EntityClient提供程序一起使用,或者无效
我刚刚创建了我的第一个EF项目。这是一个MVC应用程序,我在MVC项目中添加了实体模型。我还添加了一个DataAccess类和一个使用NUnit运行测试的类。最后,我将添加一个引用DataAccess类的服务类。因此,代码目前看起来是这样的(我只是想让测试工作来证明EF正在做它的事情):
文本设备调用DataAccess类
DataAccess类调用实体框架
实体框架访问本地数据库
目
我得到以下错误:
指定的命名连接在配置中找不到、不打算与EntityClient提供程序一起使用,或者无效
我刚刚创建了我的第一个EF项目。这是一个MVC应用程序,我在MVC项目中添加了实体模型。我还添加了一个DataAccess类和一个使用NUnit运行测试的类。最后,我将添加一个引用DataAccess类的服务类。因此,代码目前看起来是这样的(我只是想让测试工作来证明EF正在做它的事情):
- 文本设备调用DataAccess类
- DataAccess类调用实体框架
- 实体框架访问本地数据库
目前,我只是尝试从一个表中返回所有行/一列。记住,所有这些文件都在一个项目中。我读过很多书,说这个问题源于有多个项目,但这似乎不适用于我的情况。我已签入“main”web.config文件。连接字符串看起来不错。我也将同一个配置部分(即ConnectionString)复制到特定于调试的配置文件中,但这并没有什么不同。知道我为什么会看到这个错误吗
谢谢,
杰伊
连接字符串:
这是创建实体访问文件时对话框中的连接字符串(数据源是两个字符串中的一个句点[即本地主机]):
元数据=res:///EntityDataModel.csdl|res:///EntityDataModel.ssdl|res://*/EntityDataModel.msl;provider=System.Data.SqlClient;供应商
连接字符串=“数据源=;初始目录=URIntake;集成
安全性=真”
这是web.config文件中的连接字符串。就所有实际目的而言,它们似乎是相同的:
元数据=res:///EntityDataModel.csdl|res:///EntityDataModel.ssdl|res://*/EntityDataModel.msl;provider=System.Data.SqlClient;供应商
连接字符串=“数据源=;初始值
catalog=URIntake;集成
security=True;multipleactiveresultsets=True;App=EntityFramework“
微软Zlatko Michailov说
app.config不在exe所在的二进制目录中。请做
以下是:
目视验证具有预期内容的app.config是否位于编译exe的目录中。(b)项目中是否存在
根目录不够。)
从应用程序中使用System.Configuration.ConfigurationManager检查exe正在使用的app.config的内容
我还查看了连接字符串的内容,我可以说
它可能无法在多项目环境中工作(除非您
在每个项目中复制EDM)
原因是”
解析为从中加载exe的目录。如果你想
重复使用相同的EDM,您至少需要在
路径,然后导航到EDM所在的项目,例如。
“…..\Proj1\AdventureWorksModel”
另外,你可以考虑
使用| DataDirectory |宏-加载AppDomain时,您可以
将| DataDirectory |设置为指向EDM所在的确切目录,
然后在连接字符串中使用它,例如。
“|数据目录|\AdventureWorksModel”
如果您正在处理
NET项目中,可以使用“~”来表示项目根。在里面
在后一种情况下,您不能引用项目外部的模型
但是等级制度
更多信息
更新1:
在这里,您可以尝试以下提到的步骤
在web.config文件上清除连接字符串内容,如下所示
然后从项目中删除*.edmx文件
重新创建如下图所示(示例一)。不要忘记勾选“将web.config中的实体连接设置另存为:”
最后一步:之后,转到web.config文件,检查您的连接字符串是否与上显示的“实体连接字符串:完全相同(我在图像上方的红色标记上显示了它)
我希望这将对您有所帮助。微软Zlatko Michailov说
app.config不在exe所在的二进制目录中。请做
以下是:
目视验证具有预期内容的app.config是否位于编译exe的目录中。(b)项目中是否存在
根目录不够。)
从应用程序中使用System.Configuration.ConfigurationManager检查exe正在使用的app.config的内容
我还查看了连接字符串的内容,我可以说
它可能无法在多项目环境中工作(除非您
在每个项目中复制EDM)
原因是”
解析为从中加载exe的目录。如果你想
重复使用相同的EDM,您至少需要在
路径,然后导航到EDM所在的项目,例如。
“…..\Proj1\AdventureWorksModel”
另外,你可以考虑
使用| DataDirectory |宏-加载AppDomain时,您可以
将| DataDirectory |设置为指向EDM所在的确切目录,
然后在连接字符串中使用它,例如。
“|数据目录|\AdventureWorksModel”
如果您正在处理
NET项目中,可以使用“~”来表示项目根。在里面
在后一种情况下,您不能引用项目外部的模型
但是等级制度
更多信息
更新1:
在这里,您可以尝试以下提到的步骤