The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid

use*_*413 168 entity-framework entity-framework-4

I have a one entity framework object and when I add it to my project, the connectionstring is added to app.config in the connectionstring section, but when I want to create new entitycontext and use this connectionstring, this error appears

Mor*_*avi 216

我怀疑你的问题来自于你的解决方案中有多个项目,而包含你的实体框架包含edmx文件的项目不是解决方案的启动项目.在这种情况下,即使连接字符串存在于EF app.config项目中,仍然CLR无法在运行时找到它.例如,如果解决方案中有网站和EF项目,则需要将连接字符串从EF项目复制app.config到您的网站web.config.基本上,任何连接字符串数据都应存在于.Net线程由CLR(即您的启动项目)启动的项目的配置文件中.如果这不是你的情况,那就打开你的edmx文件,右键单击其表面,选择属性并复制连接字符串并将其粘贴到" app.config连接字符串"部分.这样您就可以确保在配置中使用了正确的一个.

编辑:
正如您在ObjectContext Constructor上的Documenation上所看到的 ,第一个参数是连接字符串名称,它是您在创建EDM时生成的代码.如果以某种方式,您的连接字符串名称的名称恰好被更改,您只需右键单击您的模型并选择"从数据库更新模型..." 然后按照向导更新您的配置和设计器以反映这一点更改.

  • 这么简单,又令人沮丧.投票.万岁stackoverflow! (4认同)
  • 如果您使用的是WCF,请记住在服务项目中包含连接字符串 (3认同)

Mus*_*o31 31

您需要将app.config中的连接字符串复制到web.config,或将整个文件复制到显示输出的项目中.这是使用框架的条件之一.


Wal*_*ner 9

当我尝试将自定义数据库逻辑放在.dll中以供我的解决方案中的多个项目使用时,我遇到了这个问题.

虽然.dll有正确的app.config文件,但它不起作用.实体框架需要.exe的app.config中的连接信息.将信息复制到那里工作得很好.

Morteza将连接字符串直接粘贴到.edmx中的解决方案对我来说不起作用,因为它不会让我将值粘贴到那里 - 尽管这正是我想要做的.

  • 即使在我的exe目录中只有一个app.config(那是该目录中唯一的配置文件),它也不会读取它.我不得不重命名文件myExe.exe.config (3认同)

小智 6

嗨,我有这个问题,这让我疯了.无论如何最后我弄清楚问题是什么.你要做的第一件事是确保connectionstringsin app.configweb.config是相同的.然后,您必须双击该.edmx文件,以便您可以看到表格.一旦你点击桌子附近的任何地方,但没有点击桌子,然后转到属性.从下拉列表中选择ConceptualEntityModel并搜索实体容器名称并记住它.

接下来转到edmx文件的设计者并打开构造函数.(设计器是edmx文件的子文件夹)构造函数应该在BASE参数中有两个参数

public DBEntities() : base("name=DBEntities", "DBEntities")
    {
        this.ContextOptions.LazyLoadingEnabled = true;
        OnContextCreated();
    }
Run Code Online (Sandbox Code Playgroud)

这是其中之一.第一个参数应该具有文件所在的项目文件的名称.edmx.第二个参数必须具有我之前提到的属性中的实体容器名称.不要忘记安排所有构造函数:base("", "")

至少这是我的问题,我的问题就这样解决了.我希望你能像这样解决你的问题.


S. *_*ggy 6

我对此有一个变化,似乎没有人覆盖.

我有一个包含几个模型的主项目,以及一个包含单元测试的测试项目.测试项目正在运行,但随后停止了OP中提到的错误.我没有对EDMX文件进行任何重命名或移动.

很多建议提到比较.config文件,但我的项目根本没有.

最后,我将app.config文件从主项目复制到我的测试项目中,然后就可以了.这是正确的步骤,还是在添加其他模型时会出现可维护性问题,我不知道,但至少我的单元测试现在再次正常运行.