存储库模式聚合和聚合根与Entity Framework 4.0

时间:2011-04-20 21:34:30

标签: entity-framework-4 repository-pattern aggregateroot aggregates

我有一个关于使用我的数据模型实现存储库模式的问题。我在网上搜索并查看了很多帖子,但我找不到任何能够解决我怀疑的答案。基本上我们的域模型如下所示 我们有一个客户端对象,它有很多子对象,而一些子对象反过来会有一个子对象,在任何时候这些没有父对象的子对象都不需要,在应用程序中没有任何意义。 / p>

client
 --> client zip codes
 --> client phone history
 --> client medical history
 --> client direct services
      --> client direct service assessments
      --> client direct service risk reductions
 --> client housing
      --> client housing landlord

就是这样。 所以从上面的表示我有一些聚合,根是客户端对象,所以我想在聚合根级别创建一个存储库,这是客户端。我的问题是如何处理其他聚合。任何人都可以就此提出一些想法。

谢谢, 阿贾伊。

1 个答案:

答案 0 :(得分:6)

通常,存储库负责准备聚合根以供程序的其余部分使用。所以你应该查询一个客户端的存储库,它应该返回一个完整的客户端对象,包括邮政编码,电话历史,病历等。聚合根的想法是没有外部代码应该担心没有客户端其他可用的聚合。

从另一个角度来看,由于您正在创建客户端存储库而客户端是聚合根,因此构建所有子对象是客户端存储库的工作,即使它们本身是聚合也是如此。