实体框架文档说明我可以在提供连接字符串时使用命名参数:
public class BloggingContext : DbContext
{
public BloggingContext()
: base("name=BloggingCompactDatabase")
{
}
}
我通常不关心命名参数:
public TspDbContext()
: base("ViktorVooey") { }
但我想我应该试一试,只是为了确认一下:
public TspDbContext()
: base("name=ViktorVooey") { }
输入
失败关键字不支持:name
这是在EF6。所以我有点被困在不关心但仍然想知道"这是怎么回事"之间。
我看到你的帖子,因为我有同样的错误。EF 6 DbContext的MSDN文档明确指出,支持构造函数字符串参数的'name='部分,并且表示:
名称也可以以'name=myname'的形式传递,在这种情况下该名称必须在配置文件中找到,否则会出现异常抛出。
换句话说,"name="前缀强制EF只查找连接字符串的配置文件项。
所以你应该检查你用"name="传递的值实际上是配置文件中的一个名称键值。
例如,在配置文件中:
<add name="MyContextName" connectionString="blah blah"/>
在构造函数中:
public MyContext()
: base("name=MyContextName")
对我来说,这是Resharper的一个问题。我暂停了Resharper, build,错误消失了。
重新启动Resharper后,错误消失了