Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework Can';无法连接实体框架_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

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:

    在这里,您可以尝试以下提到的步骤