【问题标题】:What to use for a flexible data access layer - OLEDB or...?灵活的数据访问层使用什么 - OLEDB 或...?
【发布时间】:2010-12-19 21:41:27
【问题描述】:

我正在创建一个对象关系映射工具的快速而肮脏的原型 (C#)。我想支持至少两种数据库——一种是 Microsoft SQL Server 2005/2008,另一种很可能是 MySQL。

有没有办法为两个数据库引擎使用单一的数据库访问机制?它会是什么?

当然,我知道 SQL 查询语法会有差异,但在我的情况下,这并不重要 - 我将使用工具生成适合特定数据库引擎的 SQL 查询,用户将能够优化那些 SQL 查询。

主要思想是尽可能灵活的数据提供者解决方案。是否可以完成,如何更容易完成? 请注意,我没有将它用于生产系统,仅用于原型,但我仍然很好奇它是如何在生产 OR/M 工具中实现的——它们是为每个数据提供者使用完全独立的访问机制还是有一些共同点?如果我打算将数据转换为业务对象,他们是使用 DataReaders 还是有一些更合适的方法来检索数据?

感谢您提供任何想法、链接等。

【问题讨论】:

    标签: orm data-access-layer


    【解决方案1】:

    我推荐 nhibernate - 我认为它可以满足您的需求。

    nhibernate.info

    【讨论】:

    • 谢谢,我对 nHibernate 很熟悉,但是这次我自己正在尝试构建一个原型,它做一些类似于 nHibernate 的事情。我可以查看一些 nHibernate 工具的源代码,但考虑到 nHibernate 是一个成熟的生产工具,但我需要一个简单原型的解决方案,我认为有经验的人会快速回复如何更容易完成。 .
    【解决方案2】:

    好的,我找到了: http://www.15seconds.com/issue/040127.htm

    解决方案是使用 IDbxxx 或 Dbxxx,如 msdn.microsoft.com/en-us/library/ms379620(VS.80).aspx 中所述

    现在我只能指定一次我使用哪种 DataProvider,然后在其他任何地方都使用 Db/IDb。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2010-09-13
      • 2011-01-09
      • 1970-01-01
      • 2011-02-19
      相关资源
      最近更新 更多