这个Application Block对于用到数据库的程序来说是必备的,用它可以减少很多的与数据库相关的代码。不过美中不足是只提供了SQL Server版本的Helper,所以还是得我们自己来改一下,让它也可以平行的提供Oracle、OleDb与Odbc的Helper,这四种因为这些是.NET Framework中提供的Data Providers,如果有你也有其他的Data Provider的话那么也可以扩进来哦。
很简单,将SqlHelper现有的代码Copy下来,然后再用Oracle、OleDb、Odbc等字样替换掉就有了相应的版本了,不过注意除了SQL Server其他的Data Provider都不支持ExecuteXmlReader等方法,所以简单的将它们去掉就可以了。现在的问题是,如何实现跨数据库呢?
其实这是个老问题,看起来好像不能做到100%跨数据库,除非你的程序非常的简单。所以不如为多个数据库写多个版本,但要做到不需要改动调用就可以增加多个版本,这样才可以在以后添加对新的数据库的支持,看起来好像不可能,实际上通过好的设计是可以实现的,具体的就不说了,因为要因项目而异。作为一个提示,你可以考虑利用工厂方法模式与其他的模式的组合来达到这个目的。