假设我是公司的客户,该公司提供活动。
它有一个客户表和一个事件表。 对于订户。他们是一个订阅表(作为一个结点,有一个额外的属性:AccompountedByPartner)。
所以我有一个客户和活动的存储库。
但现在问题在于订阅。
订阅是否有用于添加,删除,修改和列出服务的Repostitory PerformJoinSubscription和PerformCancelSubscription? 或者只有服务吗?
答案 0 :(得分:3)
要回答这些问题,请询问这个问题是否可以独立存在,或者它是否仅在其他方面有意义。没有客户和事件,订阅显然没有意义,因此不需要自己的存储库。在形式上,只有聚合根的实体才应该有存储库。
相反,在Event上提供一个Subscribe方法,该方法接受一个Customer参数(或Customer上的Join方法,该方法接受一个Event,具体取决于你喜欢的位置),并更新该关联的内部集合。保存修改后的实体时,您的存储库也应该将更改保存到相关对象。像Entity Framework这样的ORM会自动为您处理。