16得票1回答
处理DDD中的嵌套聚合

我刚开始学习DDD,但在处理数据的关系性时遇到了一些问题。我的聚合根应该是确定的,但聚合还有自己的聚合。为了不违反迪米特法则,我想知道自己的想法是否正确,希望一位DDD专家能提供一些见解。 我的聚合根是Account对象,它具有多个AccountElement实体的聚合,这些实体本身是单个P...

15得票2回答
为什么在领域驱动设计中仓库只用于聚合?

在领域驱动设计中,存储库用于执行聚合的序列化和反序列化,例如通过读写数据库。这样,聚合可以包含更纯粹的业务逻辑,并且不会与非领域特定的持久性策略耦合。 然而,我想知道为什么存储库总是被描述为专门用于聚合。难道不同实体同样适用吗? (如果这只是因为所有普通实体都可以被视为没有子级的聚合根,请...

13得票3回答
通过复合标识导航到聚合根内的实体的DDD导航

我有一个聚合根Products,其中包含一个名为Selection的实体列表,该列表又包含一个名为Features的实体列表。 聚合根Product仅具有名称标识 实体Selection具有名称标识(以及相应的产品标识) 实体Feature具有名称标识(以及相应的选择标识) 实体的标识...

13得票2回答
DDD: 针对非聚合根的引用解决方案

我有两个聚合根和两个非聚合根实体: 我知道,关系D -> B违反了DDD原则。 我听说,在大多数情况下,解决方案是将被引用的实体作为新的聚合根。 但如果B是A的真正子级(B不能离开A),那么将B作为新的聚合根真的是一个选择吗?

13得票2回答
我该如何在聚合根之间强制实施关系和约束?

我的一些问题涉及到DDD模型中两个聚合根之间引用关系的问题。请参考下图所示的典型客户/订单模型。 首先,在聚合实现对象之间的引用上,是否总是应该通过ID值而不是对象引用来完成?例如,如果我想要得到一个订单的客户详细信息,我需要取得CustomerId并将其传递给ICustomerRepo...

13得票2回答
Entity Framework中的聚合根支持

如何告诉Entity Framework关于聚合(Aggregates)? 在保存聚合时,保存聚合内的实体 在删除聚合时,删除聚合内的实体 当两个不同的用户尝试修改同一聚合内的两个不同实体时,引发并发错误 在加载聚合时,即使我们访问聚合内的所有实体之前存在某些时间延迟,也要提供聚合的一致的...

12得票1回答
CQRS中的聚合

什么是聚合根,以及它们在CQRS(命令查询责任分离)和ES(事件溯源)中的作用?我对这种架构很陌生,希望有人能够解释一下。谢谢!

12得票4回答
DDD - 如何设计不同领域间的关联

我已经设立了一个域项目,该项目使用ORM进行填充。该域由不同的聚合组成,每个聚合都有自己的根对象。 我的问题是如何处理跨聚合边界的属性? 这些属性是否应该简单地忽略边界,以便在A上下文中的域对象引用B上下文中的对象? 还是,A上下文与B没有直接链接,A上下文中的对象具有“int Cont...

12得票2回答
领域驱动设计中每个根聚合实体需要有一个仓库

如果你遵循存储库模式,他们建议为每个根聚合实体创建一个存储库。 这意味着当我有这个模型时: 客户有订单 订单有产品 产品有供应商 等等... 这就意味着我有4个存储库,它们被放入一个repo中。 客户是根实体。 我这里有什么误解吗?

12得票2回答
有界上下文的实现和设计

假设我有两个有界上下文,一个是 Shipping Context,另一个是 Billing Context。每个上下文都需要知道客户的信息。 在数据层面上,客户由数据库中的 CustomerTbl 表格表示。该表格包含了描述客户所需的所有必要列。 CustomerTbl 中的列(简化): ...