entity framework documentation表示我在提供连接字符串时可以使用命名参数:
public class BloggingContext : DbContext
{
public BloggingContext()
: base("name=BloggingCompactDatabase")
{
}
}
我通常不会打扰命名参数:
public TspDbContext()
: base("ViktorVooey") { }
但我想我只是为了确认而试一试:
public TspDbContext()
: base("name=ViktorVooey") { }
并且说不出来
不支持关键字:名称
这是在EF6上。所以我有点陷入不真正关心但又想知道“那是怎么回事”之间。
答案 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后,错误消失了。