【发布时间】:2015-03-20 11:27:20
【问题描述】:
在尝试实现关注点分离时,我采用了一个 ASP.NET MVC 项目并将模型和 DBContext 放入同一解决方案中的单独项目中。现在我有一个包含 ViewModel、控制器和视图的 Project.Web,并且我有一个用于模型和 DAL 的 Projects.Entities。具有 ConnectionString 属性的 web.config 文件位于 Project.Web 项目中。
项目.Web
<connectionStrings>
<add name="SchoolContext" connectionString="Data Source=localhost;Initial Catalog=ContosoUniversity1;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
家庭控制器:
public class HomeController : Controller
{
private SchoolContext db = new SchoolContext();
项目.实体
public class SchoolContext : DbContext
{
public SchoolContext() : base("SchoolContext")
{
}
我的问题是 DBContext 没有获取 SchoolContext connectionString 名称,因为它在另一个项目的 web.config 中。我该如何减轻这种情况?当所有 MVC 组件都在同一个项目中时,一切正常。
【问题讨论】:
-
使用带有连接字符串参数的 DbContext 构造函数。然后你可以从你的网络项目中传递这个,你的 DAL 不需要保留重复的值。
-
我认为这就是我想要做的,但不太确定在哪里实施。你能给我一个简单的例子吗?这就像我尝试过但无法开始工作
public partial class MyEFEntities { public MyEFEntities(string connectionstring) : base(connectionstring) { } }
标签: c# asp.net-mvc entity-framework