适用于SQL Server和Oracle数据库的应用程序

时间:2009-04-25 14:46:21

标签: c# sql-server wpf database oracle

构建适用于Sql Server或Oracle的小型(但可扩展)应用程序的最佳方法是什么?

我对在功能背后的过程中构建支持多个数据库的应用感兴趣。

6 个答案:

答案 0 :(得分:4)

使用支持多个数据库的ORM是第一步。您可以查看例如NHibernateEntity framework - 两者都支持oracle和sql。这样你就必须换掉数据库映射以使应用程序在DBMS上工作。

编辑 - 感谢tvanfosson,为nhibernate添加了“新”链接。

答案 1 :(得分:4)

除了ORM评论;有时候生活并不那么简单。

您必须保留单独的脚本,以便在两个系统上生成表,视图和存储过程,因为它们会有所不同。

由于特定于一个数据库平台的性能原因,您可能需要做一些棘手的事情。例如,在Oracle中创建一个新分区。

您应该尝试通过将其封装在视图或存储过程中来完成此级别的操作。

您的客户端代码可以在任何数据库上使用相同的签名调用存储过程。您可以编写一个不执行任何操作的存储过程,具体取决于数据库所需的内容。

答案 2 :(得分:2)

我的建议是使用现有的(免费)框架,如nHibernate,它为您抽象出对数据库的依赖。或者,您需要定义自己的抽象层,该层能够与两个数据库中的任何一个的驱动程序进行交互。

答案 3 :(得分:1)

作为其他答案的补充,你应该看看ADO.Net中的DbProviderFactories架构......有点低调但可能对你有用。

答案 4 :(得分:1)

正如许多人所指出的,使用ORM可以解决您的问题。我使用LLBLGen取得了巨大的成功。或者,您可以使用接口IConnection,ICommand等来连接您自己的ConnectionFactory。

答案 5 :(得分:0)

我会使用OR / M.其中大多数都支持许多不同的数据库供应商,并且具有数据库无关的语言来进行查询等。

我可以为C#推荐NHibnernate。