汇总根DDD / UoW /回购/服务

时间:2019-07-31 12:43:54

标签: c# design-patterns domain-driven-design repository-pattern aggregateroot

我对存储库的聚合对象有一些疑问。

我正在使用DDD / UoW / Repo和服务模式进行休息服务。我们新的云Web应用程序将使用此服务。为此,我们还必须同步仍在生产中的旧数据库中的数据。我们创建了一个“ SyncService”,可以在云中进行读写操作。

在我的Rest / DDD设计中。而且我不希望在这些基础上运行业务逻辑,因此在原始测试项目中,我为每个模型都有一个存储库,并且端点仅执行一些简单的验证,然后使用该存储库将数据直接推送到数据库。

假设我有这些实体

  • 客户
  • 订购
  • OrderLine
  • 文章

D 数据库管理关系

  • 一个客户可以有很多订单。

  • 一个订单只能有一个客户。

  • 一个订单可以有多个OrderLine。

  • OrderLine可以有一个Article。

问题

  • 除了Article以外,是否所有这些汇总?

  • 这些实体中的哪些实体将具有存储库?

  • 存储库的外观如何?

  • 我是否应该使“ SyncService”的端点仅与通用存储库对话以进行插入?

谢谢。

1 个答案:

答案 0 :(得分:1)

  1.   

    除了“ Article”以外,是否所有这些汇总?

我认为,如果没有访问业务逻辑并了解整个域的外观,就不可能回答这个问题。例如。在某些系统中,Customer可以是一个聚合,而Order可以是一个实体,而在其他某些情况下则可以。 这个决定应该由建筑师决定。

2,3,4。如果您使用DDD,则可以通过汇总访问实体。我想说使用存储库模式的概念是可选的。在某些情况下,您可以只使用纯数据库上下文,例如例如,如果您使用的是Entity Framework Core,则不必在其之上构建额外的存储库层,因为它本身已经是一个存储库。因此,这些问题的答案将取决于一切。