为一个实体聚合

Aggregate for one entity

在域驱动设计中,如果我想使用一个存储库,我需要有一个聚合 - 据我所知。

所以我有一个用户,它有 ID、登录名、电子邮件和密码。用户是具有唯一 Id 的域实体。

当我想将用户添加到用户存储库时,我是否应该首先构建一个只有聚合根的聚合,它是我的用户实体,仅此而已?在这种情况下,它看起来像是用户的代理,不需要的层。

或者我错过了什么?也许用户不是实体,即使它看起来像这样。或者也许我可以将实体直接放入存储库?

聚合根 (AR) 是一个实体,并且拥有作为其自身聚合根的实体是很常见的。

您的 User 实体将只是一个聚合根。你不需要额外的具体 class.

In Domain-driven design if I want to use a repository I need to have an aggregate for it - as I understand.

我想提出的一件重要事情是,我们不为存储库创建聚合,我们创建存储库是因为我们需要持久存储聚合。

存储库处理整个聚合,仅此而已。它们保留了交易边界,这应该定义您的聚合。

When i want to add a User to User repository, should I build first an Aggregate with only Aggregate Root that is my User entity and nothing more? It looks like a proxy to User in this case, unneeded layer.

单实体聚合绝对没有错。在这种情况下,实体将是聚合根和聚合的整体。

我建议您阅读 Vaughn Vernon 的 Effective Aggregate Design 系列。