asp.net core 2.0中来自存储库层的DbContext的依赖注入

时间:2018-01-11 14:17:00

标签: asp.net-web-api entity-framework-6 asp.net-core-2.0 asp.net-core-webapi

普通的asp.net核心api示例应用程序从Controller Constructor注入派生类DbContext  private readonly ApplicationContext context; public EmployeeController(ApplicationContext context) { this.context = context; }。这里Controller直接与EF通信。
但我想创建瘦控制器。 控制器 - >服务层 - >存储库层。

  • 服务层将执行业务逻辑并将业务对象绑定到传输对象。
  • 存储库层仅取决于数据库上下文。


因此Controller Constructor无需注入Db Context。如何仅使用Repository注入DBContext。
另一个问题是,开发休息服务的方式是正确的吗?或者我们应该采用相同的方式(控制器到EF)?

1 个答案:

答案 0 :(得分:0)

在Startup.CS的“服务”部分配置ApplicationDBContext

services.AddDbContext<ApplicationDbContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

然后您可以将它包含在您的存储库构造函数

public AppRepository(ApplicationContext context)
{
     this.context = context;
}

以上回答假定存储库类是Web API项目的一部分。