我正在为一家电信公司开发一个大型系统。我是 DDD 的新手,很难将不同的部分链接在一起。我们当前的系统是使用 NHibernate 构建的。它目前有超过 600 个表,所有数据访问都是使用 NHibernate 完成的,但对于新系统,我们将使用 EF。以下是几个功能区域和每个功能区域中的数据库表示例。
客户
-----> CustomerDemographics
-----> CustomerPayments
-----> CustomerTransactions
RoutingEngine
-----> InboundRoutes
-----> OutboundRoutes
ProvisioningEngine
-----> InboundSwithces
-----> OutboundSwitches
-----> RouterConfigs
-----> GatewayConfigs
BillingEngine
-----> InboundTraffic -----
> OutboundTraffic
由于系统必须是可单元测试的,我开始使用存储库模式抽象实际实体。一种方法是为每个数据库表创建一个存储库对象。当然,所有这些存储库类都可以从通用存储库接口派生。然而,这将在代码库维护方面增加相当多的开销。在 DDD 中,我读到了聚合的这个概念,但我不确定它应该如何专门应用于 EF 的上下文中。Aggregate 对象应该是这些存储库的容器,还是这些更多的是相关上下文的容器(意味着类似于 Bounded DbContexts 的内容)?