Entity framework 4 存储库模式聚合和使用Entity Framework 4.0聚合根
我有一个关于用我的数据模型实现存储库模式的问题。我在网上搜索了很多帖子,但是我没有找到任何可以消除我疑虑的答案。基本上,我们的领域模型如下所示 我们有一个客户机对象,它有很多子对象,而一些子对象又会有一个子对象,在任何时候,这些没有父对象的子对象都是不需要的,在应用程序中也没有任何意义Entity framework 4 存储库模式聚合和使用Entity Framework 4.0聚合根,entity-framework-4,repository-pattern,aggregateroot,aggregates,Entity Framework 4,Repository Pattern,Aggregateroot,Aggregates,我有一个关于用我的数据模型实现存储库模式的问题。我在网上搜索了很多帖子,但是我没有找到任何可以消除我疑虑的答案。基本上,我们的领域模型如下所示 我们有一个客户机对象,它有很多子对象,而一些子对象又会有一个子对象,在任何时候,这些没有父对象的子对象都是不需要的,在应用程序中也没有任何意义 client --> client zip codes --> client phone history --> client medical history --> client
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
事情是这样的。
因此,从上面的表示中,我有一些聚合,根是客户机对象,因此我考虑在聚合根级别创建一个存储库,即客户机。我的问题是如何处理其他聚合。有谁能给我一些建议吗
谢谢,
Ajay.一般来说,存储库负责准备聚合根目录供程序的其余部分使用。因此,您应该查询客户机的存储库,它应该返回完整的客户机对象,包括邮政编码、电话历史记录、医疗历史记录等。聚合根的概念是,如果没有其他可用的聚合,外部代码不必担心获取客户机
从另一个角度看,由于您正在创建一个客户机存储库,而客户机是聚合根,所以客户机存储库的工作就是组合所有子对象,即使它们本身是聚合的。那么这是否基本上意味着在客户机级别只有一个存储库也将加载聚合。如果是这样的话,这就回答了我的问题。谢谢多梅尼克。是的,没错;在客户端级别只有一个存储库。类似地,在提供者级别将有一个存储库。通常,每个聚合根都有自己的存储库。