17

我的解决方案中有 3 个课程项目。1. MVC4 项目 2. 领域 3. 测试

在 MVC4 项目中,我添加了一个 web.config 文件,其连接字符串为

<add name="EfDbContext"  connectionString="Data Source=.;Initial Catalog=SportsStore;Integrated Security=true;" providerName="System.Data.SqlClient"/>

我在继承 DbContext 的域项目中有一个名为 EfDbContext 的类。

当我在浏览器中查看网站时,我收到未找到服务器的错误。

我调试了 EfDbContext 类,发现 Database.Connection.ConnectionString 设置为 \SqlExpress,数据库为 EfDbContext。

这是为什么?

4

3 回答 3

17

当您的上下文类在不同的项目中时,您必须将连接字符串作为上下文的完整命名空间

例如:

<add name="YourClassProject.EfDbContext" connectionString="Data Source=.;Initial Catalog=SportsStore;Integrated Security=true;" providerName="System.Data.SqlClient"/>
于 2012-10-08T03:25:05.447 回答
11

您应该使用传递给构造函数的连接字符串名称来创建 DbContext

public class UnicornsContext : DbContext
{
    public UnicornsContext()
        : base("EfDbContext")
    {
    }
}

http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-2-connections-and-models.aspx

于 2012-10-08T03:35:35.853 回答
1

最后,我意识到我在Views文件夹中VS创建的web.config文件中添加了连接条目。

我的错。

于 2012-10-08T18:38:46.873 回答