普通的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)?
答案 0 :(得分:0)
在Startup.CS的“服务”部分配置ApplicationDBContext
。
services.AddDbContext<ApplicationDbContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
然后您可以将它包含在您的存储库构造函数
中public AppRepository(ApplicationContext context)
{
this.context = context;
}
以上回答假定存储库类是Web API项目的一部分。