EF6 - 在应用程序配置文件中找不到名为“Data Source = ...”的连接字符串

时间:2014-02-27 18:26:42

标签: c# asp.net-mvc database entity-framework ef-code-first

我正在尝试将连接字符串动态设置为继承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)
        {
        }
}

我想知道为什么会这样。正如我所理解的,构造函数可以接受连接字符串名称和连接字符串。在这种情况下,实体框架似乎期望一个名称。

请帮忙。

谢谢:)

2 个答案:

答案 0 :(得分:2)

您可能希望DbContext(String)而不是DataContext(String)给定EF标记(并引用nameOrConnectionString参数)。

public class MyDataContext : DbContext
{
    public MyDataContext(String nameOrConnectionString)
        : base(nameOrConnectionString)
    {
    }
}

否则DataContext正在寻找文件来源,这可能是您所看到的问题。

答案 1 :(得分:0)

尝试将连接字符串复制到MVC项目中的.config文件(即主项目),并确保将MVC项目作为启动项。