在Domain驱动的设计中,如果我想使用存储库,我需要有一个聚合 - 正如我所理解的那样。
所以我有一个用户,有id,登录,电子邮件和密码。用户是具有唯一ID的域实体。
当我想添加一个User to User存储库时,我是否应该首先构建一个只有Aggregate Root的聚合,这是我的用户实体,仅此而已?在这种情况下,它看起来像User的代理,不需要的层。
或许我错过了什么?也许用户不是一个实体,即使它看起来像这样。或者我可以将实体直接放到存储库?
答案 0 :(得分:6)
聚合根(AR)是一个实体,并且拥有作为其自身聚合根的实体非常常见。
您的User
实体只是一个聚合根。你不需要额外的具体课程。
答案 1 :(得分:1)
在Domain驱动的设计中,如果我想使用我需要的存储库 它的汇总 - 据我了解。
我想提出的一件重要事情是我们不为存储库创建聚合,我们创建存储库因为我们需要持久聚合。
存储库处理整个聚合,仅此而已。它们保留了应该定义聚合的事务边界。
当我想添加User to User存储库时,我应该先构建一个 聚合只有聚合根,这是我的用户实体而没有 更多?在这种情况下,它看起来像是User的代理,不需要的图层。
单实体聚合绝对没有问题。在这种情况下,实体将是聚合根和整体聚合。
我建议你阅读Vaughn Vernon的Effective Aggregate Design系列。