Code First实体框架连接字符串

17
我在解决方案中有三个类项目。 1. MVC4 项目 2. Domain(领域) 3. Tests(测试)
在 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个回答

17

如果你的上下文类在不同的项目中,必须将连接字符串设置为完整的命名空间。

例如:

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

还要注意,如果您想使用EF6为多个上下文使用共享数据库,请确保您的上下文类调用base("在本文中列出的您的内容名称"),因为这也将是要查找的连接字符串名称。 - Adam Tuliper

11

1
这对我来说是最好的解决方案 :) 谢谢。 - Khaled Musaied

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接