在 CQRS 中,如何确保命令处理程序以事务方式更新写入存储和读取存储?
我不确定这两个步骤是否应该是一个交易?还是您在这里依赖最终的一致性?这意味着读取存储最终会更新吗?
使用 NServiceBus 5 或 6 的(或一种)常用方法是什么?
在我们的应用程序中,我们有IRepository<T>
(Add, Update) 用于命令端来更新 Sql Server 数据库。查询方面很简单。实体框架之上的数据库和外观DbContext
。
命令方面的步骤是:
- MVC 控制器从 View 接收数据
- 控制器操作创建一个命令/消息对象并将其发送到总线。
- 适当的命令处理程序创建适当的域对象并对其进行验证。
- 如果有效,则使用 IRepository 插入或更新数据库。
- 怎么办?
这是否必须是 NServiceBus 中的 Saga,其中第 1 步和第 2 步更新命令存储和读取存储?
谢谢你。