我典型的.NET 4.5X Web应用程序结构至少有3层:一个Web项目(一个.NET Web应用程序),一个域/业务逻辑项目(一个类库)和一个数据访问项目(一个类库)。 Web项目引用业务层,业务层引用数据访问层。用数据访问层安排3层的dotnet核心应用程序
我喜欢这种方法,因为我的web项目没有对数据访问项目的引用(它必须先通过域/业务逻辑层)。我的Web项目不应该有任何访问上下文或存储库类。
在3层.net 4.5.X应用程序中,我在web.config中声明了连接字符串,并将DbContext的名称作为连接字符串的名称属性。
在新DOTNET核心的模式,我看到每一个例子已在Startup.cs配置像这样的DbContext:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyApplicationContext>("myconnectionstring or reference to it");
}
通过给启动一个具体的类使用的的DbContext,我必须引用数据访问项目,其中定义了dbcontext。我宁愿只参考中间层,并避免引用DAL。
我的问题是:我应该如何安排我的解决方案结构,以便避免将我的Web项目的引用添加到我的数据访问项目中?
我可以使用appsettings.json属性吗?
我可以以其他方式添加我的实体配置吗?
有没有什么专业我缺少关于网络核心?
预先感谢您。
此答案可能会有用,它会删除网络层中的EF引用http://stackoverflow.com/a/38360204/1544886 –