作者:梁利锋 标签:DotNet, DbEntry

5103天前 (阅读:3237)
  这是我重新设计的一个 .Net 数据访问组件。这个组件目前底层的部分提供一个数据库无关的接口。上层的部分提供一个 Builder 组,目前的实现有一部分数据库相关性。另外,还提供一个从类定义直接操作数据库的 Items 组。

  配置部分通过 App.config 进行,请参阅 DbAccessTest、SpTest 项目中的 App.config 文件的配置。

  目前实现的部分,所有功能通过 IDbEntry 提供,此接口定义了 5 个操作:两个 ProcessDataSet,一个 UpdateDateSet,一个 ProcessScalar 和一个 ProcessVoid 其中,含有 ReturnType 的 ProcessDataSet 可以通过这个参数指定返回 DataSet 的某个子类的对象。

  之所以对于各个操作都新建一个连接,是因为 ADO.NET 为每一种数据源自动的维护一个连接池,依据的是连接字符串,所以,在我们的代码中不需要维护连接,也能达到同样的效率。

  目前支持存储过程和数据库事务,不过,对于查询参数(包括存储过程的参数),只支持 input 参数,不支持 output 参数,因为我认为,output 参数完全没有直接使用 select 返回值方便、直观。所以,如果一定想要使用 output 参数的话,需要自行修改代码。

  存储过程同样是使用 IDbEntry 接口,使用上和 DbEntry 基本相同。目前,使用自动判断的方式来分别调用 SpEntry 和 DbEntry,所以开发者不再需要关心此细节,要把一个原来是使用 Sql 语句访问的地方,修改为使用存储过程访问,只需要修改 Sql 语句为存储过程名即可。需要注意的是,UpdateDateSet 中的 Sql 参数不能使用存储过程。

  数据库事务通过 DataTransaction 实现,其中包含 DbEntry 和 SpEntry,通过它们进行的数据库操作,就是事务方式的了。

  不过,Builder 和 Items 目前还有一些不足,以后还需要修改和加强。

  我只在 MS Sql Server 2000 和 MS Access 2003 上测试过本组件,其它的数据库应该也能支持,不过,细节地方也许会有问题。请小心使用。

  我一直使用 MS .Net 来编译程序,不过,因为符合 CLS 规范,而且主要是系统无关的算法,所以,应该也可以在 Linux 上使用 Mono 之类的编译器编译使用。


点睛 .NET 数据访问组件 v0.14 下载

That's the thinking of a cerative mind(非注册用户) 2012-10-22 13:39:34

That's the thinking of a cerative mind

And to think I was going to talk to sonemoe in per(非注册用户) 2015-1-19 17:19:35

And to think I was going to talk to sonemoe in person about this.