Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 数据库抽象-有哪些选项?_Design Patterns_Orm_Database Abstraction - Fatal编程技术网

Design patterns 数据库抽象-有哪些选项?

Design patterns 数据库抽象-有哪些选项?,design-patterns,orm,database-abstraction,Design Patterns,Orm,Database Abstraction,如何从应用程序中提取数据库,使其不知道数据库类型? 我必须设计一个.NET3.5WPF应用程序,它必须支持SQLServer或VisualFoxpro作为数据存储库 我的设计目标是: 在数据访问层中编写代码时,使数据存储库的类型不可见 在SQL和FoxPro之间切换要尽可能快和轻松 允许使用DAL中的ANSI SQL和存储过程 对于加入项目的其他开发人员来说,学习曲线必须是最小的 这将是一个WPF应用程序,可能使用CSLA 我曾考虑过使用某种ORM,但没有使用这种技术的经验 许多ORM与数据库类

如何从应用程序中提取数据库,使其不知道数据库类型? 我必须设计一个.NET3.5WPF应用程序,它必须支持SQLServer或VisualFoxpro作为数据存储库

我的设计目标是:

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


    我曾考虑过使用某种ORM,但没有使用这种技术的经验

    许多ORM与数据库类型无关,尽管FoxPro要求可能会限制您的选择,或者要求您编写自己的提供程序或适配器

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


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

    这里没有问题……我的问题是实现这一点的最佳方法是什么?我可以使用某种接口,这样我看到的只是一个IConnection或and ICommand,而不是SqlConnection或ODBCConnection。我可以使用某种ORM。我可以两次编写我所有的DAL代码,一次用于Fox,一次用于SQL Server!