我正在尝试将连接字符串动态设置为继承DbContext的MyDataContext,我收到此错误:
在应用程序配置文件中找不到名为“Data Source = myserver \ mine;初始目录= MyDb;用户ID = user1;密码= mypassword; Connect Timeout = 300”的连接字符串。
以下是我的代码:
public class DataContext : DbContext, IDataContext, IDataContextAsync
{
private readonly Guid _instanceId;
public DataContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
_instanceId = Guid.NewGuid();
Configuration.LazyLoadingEnabled = false;
Configuration.ProxyCreationEnabled = false;
}
//and so on...
}
public class MyDataContext : DataContext
{
public MyDataContext (string nameOrConnectionString)
:base(nameOrConnectionString)
{
}
}
我想知道为什么会这样。正如我所理解的,构造函数可以接受连接字符串名称和连接字符串。在这种情况下,实体框架似乎期望一个名称。
请帮忙。
谢谢:)
答案 0 :(得分:2)
您可能希望DbContext(String)
而不是DataContext(String)
给定EF标记(并引用nameOrConnectionString
参数)。
public class MyDataContext : DbContext
{
public MyDataContext(String nameOrConnectionString)
: base(nameOrConnectionString)
{
}
}
否则DataContext
正在寻找文件来源,这可能是您所看到的问题。
答案 1 :(得分:0)
尝试将连接字符串复制到MVC项目中的.config
文件(即主项目),并确保将MVC项目作为启动项。