POCO设计问题

时间:2010-09-02 16:34:45

标签: .net domain-driven-design poco business-objects

我的 POCO 可以/应该包含多个数据库吗?

我问的原因是我正在重构分阶段构建的遗留企业应用程序。不幸的是,每个阶段都有自己独立的数据库(至少它们都在同一个SQL实例上)。

因此,我可以很容易地看到典型的业务对象在两者之间可以跨越的地方。我知道在 DDD 中,我的对象不应该知道我只是想知道是否存在一种,不成文的规则,即多个表都很好但不是多个DB。

这是否会让我头疼不已,即我是否应该将4个单独的数据库合并为1,因为它们都适用于相同的应用程序而非应用“创可贴”溶液

我正在教我自己领域驱动设计的任何陈述,因为我这样做并试图在我去的时候应用它。

2 个答案:

答案 0 :(得分:2)

你的POCO应该 Persistence Ignorant - 他们不关心他们来自哪里,或者他们去哪里。

您应该关注存储库:它们定义数据的来源,以及如何将数据注入您的POCO。当您决定合并数据库时,您只需要更新您的存储库类。

希望有所帮助。

答案 1 :(得分:1)

我们目前的内部系统使用多个数据库。我们的客户数据来自现成的ERP。我们的“购物车”数据来自多个自定义数据库,这些数据库分为产品和报价。一旦我们与会计/运输接口,我们将连接到另一个数据库以访问订单数据。有时在我们的网站中有观点来汇总来自所有这些系统的信息,因此我们的POCO充满了来自遥远地方的各种垃圾。我们将其留给我们的域服务层来访问各种数据库并填写我们的POCO。