【问题标题】:Repository Pattern/ UOW Pattern with different database platforms [closed]具有不同数据库平台的存储库模式/ UOW 模式[关闭]
【发布时间】:2015-12-23 03:55:06
【问题描述】:

有没有人在使用不同的数据库技术(在本例中为 sql 和 informix)时提出一个体面的存储库/UOW 模式的经验。

我很挣扎,因为我不能对informix 数据库使用EF,并且希望尽可能保持统一,但同时我想避免过多的模型转换。

【问题讨论】:

  • 您真的在问“什么是适用于 Informix 的好的 .NET ORM”,不是吗?

标签: c# .net domain-driven-design repository-pattern unit-of-work


【解决方案1】:

存储库模式已经为您提供了实现这一目标所需的灵活性。 为您的存储库定义一个接口。现在添加两个实现,一个用于 SQL Server,一个用于 Informix。

您似乎遇到的实际问题不是使用它的模式,而是连接到 SQL Server 和 Informix 的技术基础架构。在这里,Dapper 可能是一个解决方案,因为据我所知,它同时支持 SQL Server 和 Informix。

或者,如果您想将 EF 与 SQL Server DB 一起使用,只需将 Dapper 与 Informix 结合使用 - 存储库会很好地对您的应用程序隐藏这一事实。

【讨论】:

    【解决方案2】:

    由于在 DDD 中,数据库是一个实现细节,如果您不必在一个或其他 ORM 解决方案中提供上下文数据,那么 theDmi 提供的是一个非常好的解决方案利用(至少不摆弄某种“桥接”对象的创建)。如果出于某种商业原因,出于某种原因,应该将这些数据“分离”到不同的存储库中,我也会这样做,因为知道什么来自 Sql Server 和什么来自 Informix 很重要。

    但是,如果您希望将其全部视为一组数据,另一种解决方案是在 Sql Server 本身中链接 Informix 数据。然后,您应该能够利用视图或存储过程来获取 Informix 数据,就像 Sql Server 托管它一样。您可能知道,EF 提供了一些将对象映射到存储过程和视图的方法。

    当然,此解决方案在很大程度上取决于您对 Sql Server 管理和架构的控制程度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      相关资源
      最近更新 更多