Domain driven design CQRS/EventStore-将GUID传递到UI?

Domain driven design CQRS/EventStore-将GUID传递到UI?,domain-driven-design,cqrs,neventstore,Domain Driven Design,Cqrs,Neventstore,我目前正在使用J Oliver的EventStore,据我所知,它使用GUID作为流ID,这是用来构建聚合根的 从CQRS的角度和DDD的角度来看,我应该考虑域而不是GUI 因此,如果我执行GET(Mvc客户机),我说我的URL应该具有我的域对象(聚合根)的标识,并且从中我从读取存储中获取GUID,然后使用该GUID从事件存储中构建聚合根,这对吗 或者我应该将GUID传递给我的表单,并将它们作为隐藏的表单变量传递回去?至少这样我知道聚合根id,并且不必查询读取存储 我认为第一种方法是正确的(不在

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

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

因此,如果我执行GET(Mvc客户机),我说我的URL应该具有我的域对象(聚合根)的标识,并且从中我从读取存储中获取GUID,然后使用该GUID从事件存储中构建聚合根,这对吗

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

我认为第一种方法是正确的(不在表单中使用guid),因为我所有的get和post都处理域对象的标识,而不是客户端不知道的guid


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

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

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

谢谢Mattias,非常感谢您的回复。没问题,很高兴我能提供帮助。谢谢Mattias,非常感谢您的回复。没问题,很高兴我能提供帮助。