我的解决方案中有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。
为什么?
答案 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")
{
}
}
答案 2 :(得分:1)
最后,我意识到我在VS文件夹中创建的web.config文件中添加了连接条目。
我的坏。