聚合上的read()函数的API是什么?

时间:2018-07-25 19:31:01

标签: wolkenkit

在writeModel上使用命令服务的引用使用此示例:

const commands = {
  async issue (invoice, command, { app }) {
    const otherInvoice = await app.accounting.invoice(otherInvoiceId).read();

    // ...
  }
};

好...如果我真正需要的是搜索当前或其他数据汇总,该怎么办?是否有可以传递给read()的过滤器选项等来实现?如果没有,我该怎么办?

1 个答案:

答案 0 :(得分:0)

在写模型(用于处理命令的模型)中,只能通过其ID引用聚合。因此,您提供的示例代码实际上是从写模型read进行聚合的唯一可行方法,并且read函数没有没有任何其他参数。

如果您需要执行 search ,则可能要访问读取的模型。与CQRS中一样,写入模型和读取模型应该彼此独立,通常认为从写入模型内部访问读取模型是一种不好的做法(除其他原因外,这主要是由于以下原因导致的一致性问题):最终的一致性)。因此,wolkenkit无法提供从写入模型访问读取模型的方法。

您可能想做的是从客户端执行搜索,即在发送命令之前 ,然后将所需的一个或多个汇总ID作为命令的一部分发送,以便然后,您可以通过其ID在写入模型中访问它们。

我希望这会有所帮助。