C# 聚合和DDD

C# 聚合和DDD,c#,domain-driven-design,aggregation,C#,Domain Driven Design,Aggregation,我正在开发一个应用DDD原则的项目,我创建了一个类聚合帐户,它将包含类Agency和代理,该帐户在数据库中有表。我的问题是: 我需要为我的每个实体Account、Agent和Agency创建一个Repository类和一个Service类,或者我应该创建AccountRepository,并在其中插入和搜索3个类?只有聚合根才会有存储库,但您必须找到正确的聚合 在对您的域一无所知的情况下,我觉得代理和代理是它们自己的聚合根,因此它们各自都有自己的存储库,并且帐户将通过身份引用它们 设计聚合是最复

我正在开发一个应用DDD原则的项目,我创建了一个类聚合帐户,它将包含类Agency和代理,该帐户在数据库中有表。我的问题是:


我需要为我的每个实体Account、Agent和Agency创建一个Repository类和一个Service类,或者我应该创建AccountRepository,并在其中插入和搜索3个类?

只有聚合根才会有存储库,但您必须找到正确的聚合

在对您的域一无所知的情况下,我觉得代理和代理是它们自己的聚合根,因此它们各自都有自己的存储库,并且帐户将通过身份引用它们


设计聚合是最复杂的建模任务,整本书都可以写在这个主题上。我强烈建议您阅读沃恩·弗农的著作。

只有聚合根才有存储库,但您必须提出正确的聚合

在对您的域一无所知的情况下,我觉得代理和代理是它们自己的聚合根,因此它们各自都有自己的存储库,并且帐户将通过身份引用它们


设计聚合是最复杂的建模任务,整本书都可以写在这个主题上。我强烈建议您阅读沃恩·弗农的著作。

答案很好,书也很好。每当我和任何人谈论DDD时,我总是强调同样的情绪。我们已经看到很多人将聚合设计视为数据建模而失败,也就是说,一个单一的前期工作会生成一个人们不愿意更改的刚性域模型。整个领域应该从用例中有机地成长起来,人们需要从理解它/将/改变作为正在进行的发现过程的一部分开始。谢谢您的回答。我将要读那本书,我认为清楚这些概念、伟大的答案和伟大的书是非常重要的。每当我和任何人谈论DDD时,我总是强调同样的情绪。我们已经看到很多人将聚合设计视为数据建模而失败,也就是说,一个单一的前期工作会生成一个人们不愿意更改的刚性域模型。整个领域应该从用例中有机地成长起来,人们需要从理解它/将/改变作为正在进行的发现过程的一部分开始。谢谢您的回答。我要去读那本书,我认为清楚这些概念是非常重要的