5

在 J Oliver 的 EventStore 中,打开流时我应该如何使用 streamId?

我是否应该为每个对象/聚合根对象创建一个新的流/流 ID?

那么我认为应该是 ar 对象的我的订单状态对象应该每个都有一个流 ID 吗?

4

1 回答 1

7

StreamId 是您的聚合根 ID。您可能希望将其包含在您的命令中。由于它们是 Guid,您可以在从客户端发送命令之前设置它们,这意味着您可以对同一个 AR 进行操作,而无需从读取模型中加载它。

以下是使用 CommonDomain 项目的示例:

class CreateOrder {
    public Guid OrderId;
    ... 
}

class CreateOrderHandler {
    void Handle(command) {
        var order = Order.Create(command.OrderId);
        // This is using the Id property from AggregateBase in CommonDomain
        repository.Save(order, Guid.NewGuid(), null);
    }
}
于 2012-02-01T09:33:11.527 回答