You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Clean架构下ASP.NET Core API的DbContext注入及层级引用问题

关于DbContext分层依赖的问题解答

项目分层背景

  • Domain项目:包含实体类(Entities)
  • BusinessLogic项目:包含业务功能(Feature)
  • Infrastructure项目:存放DbContext
  • API项目:包含控制器(Controllers)

1. Infrastructure项目是否需要引用Domain项目以将Entities添加到DbContext?

是的,必须引用。
DbContext的核心作用是将领域实体映射到数据库表,你需要在DbContext中声明DbSet<Entity>属性,或是在OnModelCreating方法中配置实体映射——这些操作都直接依赖Domain项目里的实体类类型。如果不引用Domain项目,Infrastructure根本无法识别和使用这些实体,也就无法完成DbContext的配置工作。

2. 基础设施层能否跨一层访问领域层?

完全可以,这符合分层架构的设计逻辑。
在常规分层架构中,依赖方向是外围层依赖核心层:Domain作为核心领域层,定义了业务的核心实体与规则;Infrastructure作为外围的持久化实现层,本职就是为Domain提供数据持久化能力,直接依赖Domain是合理的。这不属于“跨层违规”,反而如果让Domain依赖Infrastructure,才会违反依赖倒置原则,导致核心层被外围实现绑定,降低代码的可维护性与可扩展性。


内容的提问来源于stack exchange,提问作者Ronald Abellano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:22:04