在.NET中是否存在任何方式,Oledb除了与数据库无关外

时间:2011-06-12 12:32:33

标签: c# .net c#-4.0 data-access-layer

我的DAL类是否可以在不同的数据库中重复使用?

我知道有些技术(Linq和EF)支持快速开发,我很欣赏这个功能,但我也想让我的DAL代码能够在不同的数据库中重用。

一个简单的想法是Oledb使用内联SQL查询,是否有更优雅的方式?请指导我。我只是在考虑两件事。

  1. 支持4个最常用的数据库(SQL Server,My SQL,Access,Oracle)。
  2. 快速开发支持。
  3. 由于

3 个答案:

答案 0 :(得分:4)

您可以考虑使用ORM frameworkEntity FrameworkNHibernate。这样,您的数据访问层将与数据库无关。

答案 1 :(得分:3)

如果您坚持使用接口(IDbConnectionIDbCommand,...)及其工厂方法(IDbConnection.CreateCommand),那么唯一需要知道您正在使用的数据库的代码是初始连接创建(可以封装)。

答案 2 :(得分:1)

实体框架可以完成您想要的工作。最常用的数据库支持它,但Oracle除外。对于Oracle,您必须使用第三方组件,因为正式的Oracle对Entity Framework的支持仍处于测试阶段。