请解释在聚合不存在时使 EventStoreRepository.GetById 创建新流的原因。这种行为似乎赋予 GetById 双重责任,在我的情况下可能会导致不良结果。例如,我的聚合总是为它们的创建实现一个工厂方法,以便它们的第一个事件导致聚合 ID 的设置。如果在聚合存在之前处理了一个命令,即使聚合没有设置它的 Id 或初始化其他状态(crash-n-burn 与空引用异常同样可能),它也可能成功。
如果聚合不存在以防止过早创建和命令处理,我宁愿让 GetById 抛出异常。
请解释在聚合不存在时使 EventStoreRepository.GetById 创建新流的原因。这种行为似乎赋予 GetById 双重责任,在我的情况下可能会导致不良结果。例如,我的聚合总是为它们的创建实现一个工厂方法,以便它们的第一个事件导致聚合 ID 的设置。如果在聚合存在之前处理了一个命令,即使聚合没有设置它的 Id 或初始化其他状态(crash-n-burn 与空引用异常同样可能),它也可能成功。
如果聚合不存在以防止过早创建和命令处理,我宁愿让 GetById 抛出异常。