【发布时间】:2012-02-26 21:11:03
【问题描述】:
我有一个更新两个聚合的命令。由于聚合路由是事务边界,我有一个命令对第一个聚合执行 repository.Save() 操作,然后我触发另一个命令(从第一个命令中)作用于第二个聚合。每个 Save() 操作都会启动其 Event-Store 事务并提交更改,然后发布它们。
首先这是正确的,即让一个命令通过另一个命令通知另一个聚合?
我在 Mark Nihjof 的代码中注意到他使用事件处理程序,这很好,因为您可以将事件处理程序注册到同一个事件。我尝试使用 J Oliver 的 Event-Store 执行此操作,但 IDispatchCommit 中的 commits.events 在处理第二个聚合值时引用了第一个聚合值。这导致了一些奇怪的错误。
那么我应该找到一种方法来使用 EventHandlers 或在命令中触发命令好吗?
京东
编辑 - 我已经将我的线路切换到使用 .UsingAsynchronousDispatchScheduler() 并且现在允许注册的事件触发多个事件处理程序,该事件处理程序反过来触发另一个聚合上的命令,它似乎工作。那么,这是不是使用命令触发命令的正确方法?
【问题讨论】:
标签: cqrs event-sourcing