数据库抽象 - 有哪些选择?

时间:2009-07-24 14:39:11

标签: design-patterns orm database-abstraction

如何从我的应用程序中抽象出数据库,以便它不知道数据库类型? 我必须设计一个必须支持SQL Server或Visual FoxPro作为数据存储库的.Net 3.5 WPF应用程序。

我的设计目标是:

  1. 在数据访问层中编写代码时,使数据存储库的类型不可见
  2. 尽可能快速轻松地在SQL和FoxPro之间切换
  3. 允许使用来自DAL的ANSI SQL和存储过程
  4. 对于加入项目的其他开发人员来说,学习曲线必须是最小的
  5. 这将是一个WPF应用程序,可能使用CSLA。

    我曾考虑使用某种ORM,但没有使用此类技术的经验。

1 个答案:

答案 0 :(得分:1)

许多ORM与DataBase类型无关,但FoxPro要求可能会限制您的选择或要求您编写自己的提供程序或适配器。

如果您希望应用程序能够使用多个DataBase类型(例如通过配置),您还必须注意每个数据库中的模式是可兼容的,并且您不依赖于未实现的功能。您选择的其中一个数据库或ORM。

我最熟悉的ORM LLBLGen Pro支持5或6个后端数据库,但FoxPro不受官方支持。有一个客户贡献的FoxPro适配器。我不知道它是否得到了维护。