1

我有一个更新两个聚合的命令。由于聚合路由是事务边界,我有一个命令对第一个聚合执行 repository.Save() 操作,然后我触发另一个命令(从第一个命令中)作用于第二个聚合。每个 Save() 操作都会启动其 Event-Store 事务并提交更改,然后发布它们。

首先这是正确的,即让一个命令通过另一个命令通知另一个聚合?

我在 Mark Nihjof 的代码中注意到他使用事件处理程序,这很好,因为您可以将事件处理程序注册到同一个事件。我尝试使用 J Oliver 的 Event-Store 执行此操作,但 IDispatchCommit 中的 commits.events 在处理第二个聚合值时引用了第一个聚合值。这导致了一些奇怪的错误。

那么我应该找到一种使用 EventHandlers 进行这项工作的方法,还是在命令中触发命令好吗?

京东

编辑- 我已经将我的电线切换到使用 .UsingAsynchronousDispatchScheduler() 并且现在允许注册的事件触发多个事件处理程序,这反过来会触发另一个聚合上的命令并且它似乎可以工作。那么,这是正确的方法而不是使用命令触发命令吗?

4

1 回答 1

2

我认为有一百万零一种方法可以剥这只猫的皮。我不确定从事件处理程序触发命令是否可行,我必须命令处理程序在这种情况下响应相同的命令。

我确实发现文档对于参考应用程序很好。你看过那个吗?

于 2012-03-15T16:13:23.063 回答