DDD架构

DDD architecture

我有一个问题,就是想不通 现在,我正在实施 DDD 架构,在 .NET CORE 项目中,我创建了 3 层, 应用程序、域、基础设施,但有一个问题,我无法理解 我已经实现了 Repository Patterns 和 IUnitOfWork,但我的脑海中仍然存在一个问题 领域层将对数据执行业务逻辑,但数据如何持久保存在数据库中?因为域层不能依赖于基础设施 它会将数据发送回应用程序,然后应用程序层发送给基础设施吗?或者 Domain 层也会有一个 ApplicationDbContext 文件,就像 Infrastructure Layer 一样?

这是我的当前文件夹结构的片段!:

领域层通常包含企业逻辑和实体。应用层将具有接口和类型。主要区别在于领域层将具有整个企业共有的类型,因此也可以在其他解决方案之间共享。但是应用层有特定于应用程序的类型和接口。

核心层(域和应用程序)永远不会依赖于任何其他层。因此,我们在应用层创建接口,这些接口在外部层实现。这也称为依赖倒置原则。

基础设施层是您要添加基础设施的地方。基础设施可以是任何东西。也许 Entity Framework 核心层用于访问数据库,包括数据库上下文和身份等。项目对外部资源的大部分依赖应在基础设施项目中定义的 类 中实现。这些 类 应该实现应用层中定义的接口。

应用层依赖于领域层,基础设施层同时依赖于应用层和领域层。在我通常应用 CQRS 模式的方法中,我在应用程序层中实现查询和命令的处理程序。

为了更好的理解这件事,推荐大家去学习一下网络上的Clean Architecture文章。