Code First实体框架连接字符串

时间:2012-10-08 03:05:51

标签: asp.net-mvc-3 frameworks entity code-first

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

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

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

我在Domain项目中有一个名为EfDbContext的类,它继承了DbContext。

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

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

为什么?

3 个答案:

答案 0 :(得分:17)

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

例如:

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

答案 1 :(得分: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

答案 2 :(得分:1)

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

我的坏。