【发布时间】:2011-07-12 00:41:18
【问题描述】:
http://i51.tinypic.com/2ueqidt.jpg
让我们假设以下关系(图表)。 FundCompany 有资金和账户。还有一个 FundAccount,它在 Accounts 和 Funds 之间创建多对多关系(以及关系级别的其他属性)。最后,一个帐户有一个或多个受益人。
FundCompany 是一个聚合根,因为它位于金字塔的顶部。没有 FundCompany,Account 和 Fund 都不能存在。 FundAccount 不能同时存在 Fund 和 Account;这会使它们都聚合根吗?还是 Fund 仍然是唯一的聚合根,必须通过它才能对 FundAccount 实体执行操作?账户也有受益人,没有账户就不能存在,这是否也表明账户是聚合根?
此图上的所有实体都需要在我的应用程序中进行 CRUD 操作和屏幕。我提出这个的原因是大多数情况下每个 UI 屏幕都会存储它所引用的行/实体的 ID。因此,例如,用户在资金表上单击“详细信息”,我可能需要通过其 ID 检索资金。我的理解是,如果一个实体需要直接访问,那么它本身就是一个聚合根。然而,这会使很多实体默认聚合根。
根据上述问题的答案,我必须将这些操作映射到适当的聚合根存储库。
【问题讨论】:
标签: .net asp.net nhibernate entity-framework domain-driven-design