提问者:小点点

使用MediatR在CQRS命令上返回对象


最近我一直在读关于MediatR和CQRS的文章,我看到很多人说命令不应该返回域对象。它们可以返回值,但仅限于返回错误值,失败/成功信息和新创建实体的Id。

我的问题是,如果命令只能返回新实体的Id,如何将这个新的objetct返回给客户端。

1)我应该用这个新ID再次查询数据库吗?如果是的话,我重新访问数据库以获取几秒钟前在内存中的对象不是很糟糕吗?

2)返回命令创建的实体的正确方法是什么?


共1个答案

匿名用户

我认为更重要的问题是为什么不应该从命令返回域对象。如果这样做的原因对您来说似乎是一个合理的理由,那么您应该考虑其他选择,例如在命令之后立即执行查询来获取域对象。

但是,如果从命令返回域对象符合您的需要,并且不会带来任何直接的问题,那么为什么不这样做并且保持简单和直接呢?