SQL / Oracle DB的数据层中的常用方法

时间:2009-02-02 14:01:30

标签: asp.net ado.net

在.NET中如果我的数据库是SQL Server,那么在数据层中我们有语句SQLConnection,SQLCommand,SQLDataReader ......

假设我们将数据库更改为oracle,那么我们需要将语句更改为OracleConnection,OracleCommand,OracleDataReader等等。

相反,我怎样才能拥有一些通用方法,以便在运行时基于数据库类型,我将调用相应的方法。

3 个答案:

答案 0 :(得分:4)

这就是Microsoft在System.Data命名空间中实现数据库无关接口的原因。建议您查看IDbConnection, IDbCommand, IDataReader, IDbDataParameter和其他封装基本功能的内容,并允许您支持多个数据库系统。

答案 1 :(得分:0)

这是一个想法(不是运行时解决方案,但可能适合您)...

使用IDataAccess等虚拟方法创建Get(), Update(), Delete()接口(或者可能是抽象类)。然后创建一些基类,如SqlDataAccessOracleDataAccess,实施IDataAccess。然后创建继承自RanjiniDataAccessSqlDataAccess的{​​{1}}类。

答案 2 :(得分:0)

一种方法是使用System.Data.OleDb命名空间中定义的OleDbConnection等类 - 然后您应该可以通过更改连接字符串将应用程序指向Oracle或SQL Server数据库。

请记住,这可能会有轻微的性能折衷,因为Sql和Oracle对象已针对这些数据库进行了优化。

实际上,您应该问您的数据库平台有多大可能会改变为其他供应商。