我对存储库的聚合对象有一些疑问。
我正在使用DDD / UoW / Repo和服务模式进行休息服务。我们新的云Web应用程序将使用此服务。为此,我们还必须同步仍在生产中的旧数据库中的数据。我们创建了一个“ SyncService”,可以在云中进行读写操作。
在我的Rest / DDD设计中。而且我不希望在这些基础上运行业务逻辑,因此在原始测试项目中,我为每个模型都有一个存储库,并且端点仅执行一些简单的验证,然后使用该存储库将数据直接推送到数据库。
假设我有这些实体:
D 数据库管理关系:
一个客户可以有很多订单。
一个订单只能有一个客户。
一个订单可以有多个OrderLine。
OrderLine可以有一个Article。
问题:
除了Article以外,是否所有这些汇总?
这些实体中的哪些实体将具有存储库?
存储库的外观如何?
我是否应该使“ SyncService”的端点仅与通用存储库对话以进行插入?
谢谢。
答案 0 :(得分:1)
除了“ Article”以外,是否所有这些汇总?
我认为,如果没有访问业务逻辑并了解整个域的外观,就不可能回答这个问题。例如。在某些系统中,Customer
可以是一个聚合,而Order
可以是一个实体,而在其他某些情况下则可以。
这个决定应该由建筑师决定。
2,3,4。如果您使用DDD,则可以通过汇总访问实体。我想说使用存储库模式的概念是可选的。在某些情况下,您可以只使用纯数据库上下文,例如例如,如果您使用的是Entity Framework Core,则不必在其之上构建额外的存储库层,因为它本身已经是一个存储库。因此,这些问题的答案将取决于一切。