【问题标题】:Dependency Injection for DbContext from Repository Layer in asp.net core 2.0从 asp.net core 2.0 中的存储库层对 DbContext 的依赖注入
【发布时间】:2018-06-20 21:44:58
【问题描述】:

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

  • 服务层将做业务逻辑并将业务对象绑定到传输对象。
  • 存储库层仅依赖于数据库上下文。


所以控制器构造函数不需要注入数据库上下文。如何仅使用存储库注入 DBContext。
另一个问题是,开发 Rest Services 的方式是否正确?还是我们应该遵循相同的方式(控制器到 EF)?

【问题讨论】:

  • 也许你应该澄清你的问题(并修复格式:D)。您是否在注入 ApplicationContext 以外的内容时遇到问题?
  • 我已经更新了。我只是注入 ApplicationContext。我不想注入表单控制器。我正在尝试从存储库层注入。

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


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 2023-03-12
    • 2021-10-23
    • 2019-12-21
    • 2018-03-23
    • 1970-01-01
    • 2018-01-16
    • 2019-02-22
    相关资源
    最近更新 更多