Domain driven design CQRS命令-DTO

Domain driven design CQRS命令-DTO,domain-driven-design,cqrs,dto,clean-architecture,Domain Driven Design,Cqrs,Dto,Clean Architecture,我学习CQRS和DDD有一段时间了。我的问题是如何管理命令。特别是命令,因为命令可能比查询更复杂。如何使用嵌套的dto编写命令?首先要做的是定义域模型。使用DDD时,可以更好地应用CQR。现在不要考虑持久性机制(例如,您的数据库)。令人惊讶的是,这几乎将成为一个“实施细节” 命令应仅包含系统执行手头操作所需的最低限度的信息。例如,让我们设想一个“createcustomer”命令。 它将公开名称、电子邮件和客户ID。命令实例必须是不可变的:一旦初始化,就不能更改。 命令处理程序接收命令实例,根据

我学习CQRS和DDD有一段时间了。我的问题是如何管理命令。特别是命令,因为命令可能比查询更复杂。如何使用嵌套的dto编写命令?

首先要做的是定义域模型。使用DDD时,可以更好地应用CQR。现在不要考虑持久性机制(例如,您的数据库)。令人惊讶的是,这几乎将成为一个“实施细节”

命令应仅包含系统执行手头操作所需的最低限度的信息。例如,让我们设想一个“createcustomer”命令。 它将公开名称、电子邮件和客户ID。命令实例必须是不可变的:一旦初始化,就不能更改。 命令处理程序接收命令实例,根据业务不变量对其进行验证,如果一切正常,则保存数据。 命令处理程序不返回数据,它们是“发射并忘记”


通常,对于CQR,有两个不同的持久性存储,一个用于写端,另一个用于读端。首先关注写操作。

我看不出命令和DTO之间的关系。你能更准确地说明你想要实现什么吗?@Manel,让我们想想我们必须创造产品。同样的命令,我们必须创建相关的产品类型。如何设计我的命令?这是两个不同的表格,也许你应该看看如何设计一个事件源/cqrs系统。我不认为stackoverflow是涵盖如此广泛主题的地方。要快速恢复:命令->可以写入事件->可以在读取数据库(cqrs)中进行投影。投影必须包含前端视图所需的所有数据。@Manel,不,我的问题是设计命令。在正常的应用程序(不是CQR)中,我们编写嵌套的dto(产品dto保持产品类型dto)。我们如何编写创建产品并同时创建产品类型的命令?