首页 > 解决方案 > 命令查询分离 - 返回值的异步命令

问题描述

我在一个项目中采用了命令查询分离原则。

但是,我并没有严格遵守它,因为我们需要命令来返回值。

许多人参考这篇文章,这是对这个概念的一个很好的解释:

但是,这里的一个声明无法解释:

https://blogs.cuttingedge.it/steven/posts/2012/returning-data-from-command-handlers/

“...从命令返回值确实意味着命令永远不能异步执行”

谁能详细说明这一点?

为什么从 Command 返回值意味着它们不能再异步执行?

标签: c#command-query-separation

解决方案


这里“异步”的概念意味着您不会等待结果作为依赖项来执行其他任务,例如插入具有从“创建父”命令返回的父记录 ID 的子记录。实际上,您引用的文章顶部的“更新”确实说明了这一点:客户端应该为插入数据库的记录创建标识符,这可以完美实现 CQ(R)S。


推荐阅读