CQRS / EventStore - 更改两个聚合

时间:2012-02-04 16:31:37

标签: cqrs event-store

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

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

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

那么我应该找到一种方法使这个工作与EventHandlers一起使用,或者在命令中触发命令好吗?

JD

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

1 个答案:

答案 0 :(得分:2)

我认为有一百万种方法可以给这只猫留下皮肤。我不确定从事件处理程序触发命令是要走的路,我必须命令处理程序在这个实例中响应相同的命令。

我确实发现documently适合参考应用。你看过那个吗?