1

我目前正在使用 J Oliver 的 EventStore,据我所知,它使用 Guids 作为 Stream ID,这就是用来构建我的聚合根的。

从 CQRS 的角度和 DDD 的角度来看,我应该考虑域而不是 GUID。

所以,如果我做一个 GET(Mvc 客户端),我是否正确地说我的 URL 应该具有我的域对象(聚合根)的身份,并且我从读取存储中获取 GUID,然后用于构建我的来自事件存储的聚合根?

还是应该将 GUID 传递给我的表单并将它们作为隐藏的表单变量传回?至少这样我知道聚合根 id 并且不必查询读取存储?

我想第一种方法是正确的方法(不在表单中使用 GUID),因为我所有的 Gets 和 POSTS 都处理域对象的身份,而不是客户端不知道的 GUIDS。

我想这也允许我构建基于 REST 的 API,它专注于资源及其身份,而不是系统生成的 GUIDS。如果我错了请纠正我

4

1 回答 1

1

在我看来,你在这里是正确的。ui 应该完全依赖于读取模型,而不是真正关心聚合。然后,当您需要发送命令时,您可以使用读取模型来获取您感兴趣的聚合的 id。读取模型无论如何都应该非常快地读取(这就是使用不同模型进行读取和写入的全部原因),如果需要,很容易缓存。这也将为您提供更好的网址。

于 2012-02-03T09:05:44.110 回答