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