国产达梦数据库的结合Enterprise Library的应用开发

在上篇《基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操做》介绍了如何在Enterprise Library的数据访问层上支持这种神秘的国产数据库-达梦数据库。本文继续这一主题,介绍产达梦数据库的结合Enterprise Library的应用开发。html

一、达梦数据库还原处理

达梦数据库管理系统是达梦公司推出的具备彻底自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是7.0版本,简称DM7。DM7提供对SQL92的特性支持以及SQL99的核心级别支持;支持多种数据库开发接口,包括OLE DB、ADO、ODBC、OCI、JDBC、Hibernate、PHP、PDO、DB Express以及.Net DataProvider等。sql

达梦数据库能够在(http://www.dameng.com/)上下载试用,安装好后提供不少管理工具,安装后可让它建立一些实例数据库,以方便咱们了解数据库的基本操做。数据库

达梦数据库安装后,在系统开始菜单里面有一些管理工具和PDF文件连接,以下所示。有时间建议阅读下用户手册里面的几个文件,里面的文档写的仍是很详细,覆盖数据库管理操做、数据库编程开发、数据库语法几部分的内容。编程

在Winform开发框架中,在框架源码目录DatabaseDx里面,提供了一个达梦数据库的备份文件(Winframwork.dmp),里面包含了框架所需的表和数据,使用框架前还原(导入)数据库便可。操做方法是在“DM管理工具”界面里面,左边的模式树上面右键出现【导入】功能,而后选择导入数据库操做,界面以下所示。架构

单击【导入】功能后,在弹出的界面上,选择对应的目录和数据库备份文件,并输入须要的模式名称便可,界面操做以下所示。框架

还原(导入)达梦数据库后,刷新模式树列表,则会在左边的模式看到新导入的数据库相关信息。ide

 

二、开发应用的扩展整合

基于Enterprise Library的开发框架,底层使用了微软的数据访问组件Enterprise Library,以适应多种数据库类型的操做,它的分层以下所示,每一个DAL层(如DALSQL、DALOracle等)都提供了对应数据库的实现,界面层一下的分层图以下所示。工具

若是增长多一种数据库,那么咱们增长多一个Enterprise Library的组件扩展类,并在业务数据模块里面增长对应的DAL层便可。post

Enterprise Library实现其余数据库的支持,须要增长一个组件扩展类,如EntLibContrib.Data.SQLite是用来支持SQLite数据库的,EntLibContrib.Data.MySql是用来支持Mysql的,这个扩展类的内容也很少,主要是用来解析Enterprise Library扩展的配置内容的。性能

 

三、扩展支持的配置参数

在开发框架里面的启动程序或者WCF服务里面的Web.Config配置文件,咱们看到以下的配置信息。

在配置文件里面,我添加了一、二、3个步骤,第1步是指达梦数据库的链接字符串,这个是基于Enterprise Library的链接参数内容,因为Enterprise Library默认并不支持达梦数据库的,是经过其扩展模块EntLibContrib.Data.Dm进行支持的,所以须要在第2步里面指定具体的扩展对象和程序集信息;最后为了在框架里面知道具体的数据库类型,在第3步增长了一个ComponentDbType的配置信息,用来肯定是哪一种数据库类型(由于框架支持多种数据库,须要明确类型,方便构建不一样的查询语句语法)。

最后说起的是第3步里面的DM_Schema是达梦数据库的配置参数,由于达梦数据库须要指定具体的表的模式前缀。指定了这个参数,咱们在数据库模块里面的表名,就能够统一使用这个配置的【模式】名称了,如咱们能够在DALDm数据访问层里面,使用这个this.Schema的属性,这个属性的值就是经过上面的DM_Schema配置获取的。

固然,咱们已经在数据访问层里面,为tableName增长了数据库模式前缀(至关于Schema.TableName);若是在DALDm层里面,使用了this.tableName这个参数,那么它已经内置包含了数据库模式的前缀,因此不须要在使用tableName的时候,还显示的增长模式的值,具体正确使用以下所示。

也就是说,若是使用this.tableName这个参数,那么当前表就不用增长模式前缀,不然为表名增长this.Schema这个属性前缀。

 

四、如何开发支持达梦数据库的应用

因为本文主要介绍如何整合达梦数据库,开发基于达梦数据库的业务应用,所以将重点介绍如何基于这个数据库进行的框架代码生成。

因为整个Enterprise Library的开发框架,在业务层及UI层,是不涉及具体的数据库处理的,所以这些特性让它可以很好提供多数据库的支持,咱们基于这个原则,通常也不要打破这个约定,不要在UI层或者BLL层使用特定数据库的SQL。

为了快速开发框架代码,提供两种方式供快速生成数据访问层的代码,一种是基于其余数据库访问层的复制并修改处理,另外一种是全新的数据访问层生成。前者是在其余数据访问层已经完成的状况下,能够快速复制并修改便可。后者这是开始增量开发业务,在代码生成工具Database2Sharp支持的基础上进行代码生成。

1)基于其余数据库访问层的复制处理

因为不一样的数据库支持,是建立不一样的数据访问层,如达梦数据库的数据访问层,通常为DALDm,以下图所示就是字典模块中的数据访问层代码。

上面咱们看到,达梦数据库的数据访问层它的命名空间为WHC.Dictionary.DALDm这样的格式,前面部分为主命名空间,后面部分基本为约定的名称DALDm;而这个DictType数据访问类的基类这是继承了达梦数据库的数据访问基类BaseDALDm,这个作法和其余数据库相似。

咱们看到,这个内容和SQLServer的数据访问层基本相同的,SQLServer的数据访问层代码以下所示。

对比咱们能够看到,他们之间基本上同样的,若是咱们在已经开发好了一种数据类型的实现基础上,在进行另一种数据访问层的代码开发,咱们就能够这样快速操做实现代码的复制、修改。

(1)  在VS里面按住Ctrl按键,并用鼠标进行拖动,复制一份副本,修改目录为DALDm。

(2)  在VS里面,关闭所有代码窗口,把复制生成的文件所有打开。

(3)  替换DALSQL为DALDm,这样每一个类里面会替换两次内容,实现命名空间和基类名称的统一替换。

(4)  调整其余层对DALDm的引用关系。

从新编译代码便可。

 

2)全新的数据访问层生成

这种方式的代码生成,须要在代码生成工具里面,选择Enterprise Library架构生成,生成的代码把它们逐一复制到对应的目录,并调整相关的引用关系便可。

具体能够参考代码生成工具Database2Sharp的操做说明。

 

相关文章
相关标签/搜索