在J Oliver的EventStore中,如何在打开流时使用streamId?
我是否应该为每个对象/聚合根对象创建一个新的stream / streamid?
那么,我的订单状态对象我认为应该是ar对象,每个对象都有一个streamid吗?
答案 0 :(得分:6)
StreamId是您的聚合根ID。您可能希望将其包含在命令中。由于它们是Guids,您可以在从客户端发送命令之前设置它们,这意味着您可以对相同的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);
}
}