不支持DbContext构造函数连接字符串错误关键字名称

时间:2014-06-09 03:07:05

标签: connection-string entity-framework-6

entity framework documentation表示我在提供连接字符串时可以使用命名参数:

public class BloggingContext : DbContext 
{ 
    public BloggingContext() 
        : base("name=BloggingCompactDatabase") 
    { 
    } 
}

我通常不会打扰命名参数:

public TspDbContext()
    : base("ViktorVooey") { }

但我想我只是为了确认而试一试:

   public TspDbContext()
            : base("name=ViktorVooey") { }

并且说不出来

  

不支持关键字:名称

这是在EF6上。所以我有点陷入不真正关心但又想知道“那是怎么回事”之间。

2 个答案:

答案 0 :(得分:2)

我遇到了你的帖子,因为我有同样的错误。 MSDN documentation for EF 6 DbContext明确声明支持构造函数字符串参数的'name ='部分,表示:

  

在这种情况下,名称也可以以“name = myname”的形式传递   必须在配置文件中找到该名称,否则将出现异常   抛出。

换句话说,“name =”前缀强制EF只查找连接字符串的配置文件条目。

因此,您应该检查通过“name =”传递的值实际上是配置文件中的名称键值。

例如,在配置文件中:

<add name="MyContextName" connectionString="blah blah"/>

在构造函数中:

public MyContext()
            : base("name=MyContextName")

答案 1 :(得分:0)

对我而言,这对Resharper来说是一个问题。我暂停了Resharper,错误消失了。

重新启动Resharper后,错误消失了。