【问题标题】:POCO design questionPOCO设计题
【发布时间】:2010-09-02 16:34:45
【问题描述】:

如果适用,我的POCO可以/应该包含多个数据库吗?

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

因此,我可以很容易地看到典型的 Business Object 可以在两者之间跨越的位置。我知道在 DDD 中我的对象不应该知道我只是想知道是否有一种不成文的规则,即多表可以,但不能多数据库。

这是否会让我非常头疼,即,我是否应该投入精力将 4 个单独的数据库合并为 1 个,因为它们都适用于同一个应用程序而不是应用“创可贴”解决办法?

在我自学领域驱动设计的过程中,对我所做的任何陈述都持保留态度,并在我这样做的过程中尝试应用它。

【问题讨论】:

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


【解决方案1】:

您的 POCO 应该是无知的持久性 - 他们不在乎他们来自哪里,或者他们要去哪里。

您的重点应该放在存储库:它们定义了数据的来源,以及这些数据如何注入您的 POCO。当您决定整合您的数据库时,您应该只需要更新您的存储库类。

希望对您有所帮助。

【讨论】:

  • 所以,要回答我的直接问题,最好有一个 POCO 面向多个数据库,因为他们不知道这一点。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2011-04-15
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多