MiniAccess是根据mdm.xml文件来操作数据库的,在mdm.xml文件的provider指出了数据提供者的名称,一般来说,数据提供者就是某个数据据库。由于考虑到应用系统可能会提供多中类型数据数据库的支持,比如既支持MSSQL又支持MySQL,因而provider的name属性仅仅在access-type内唯一。这样mdm.xml文件中的access-type和provider二者的名字就唯一的标识了mdm所要访问的数据。
mdm.xml文件可以看作是数据访问层的程序集(dll文件)的组成部分,即像dll文件一样是由程序员编写完成后就改变了。而安装部署系统时根据所选择的数据环境,再在配置文件中确定连接字符串。要在App.config或者web.config中配置MiniAccess的数据库连接,首先要声明自定义的配置节,代码如下:
1: <configSections>
2: <section name="miniAccess" type="Ruandao.MiniAccess.MiniAccessSection,Ruandao.MiniAccess" />
3: </configSections>
miniAccess自定义配置节的语法如下:
1: <miniAccess>
2: <dataProviders>
3: <add name="DemoDatabase" accessType="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DemoDatabase;Integrated Security=True" />
4: </dataProviders>
5: </miniAccess>
其中,
IDataSourceSetter的声明如下:
1: /// <summary>
2: /// 通过实现该接口的类,可以获得某数据库的连接字符串以及该数据库的类型(MiniAccess存取的类型)。
3: /// </summary>
4: public interface IDataSourceSetter
5: {
6: /// <summary>
7: /// 获取指定存取的类型,如SqlServer、MySql等。
8: /// </summary>
9: string GetAccessType();
10:
11: /// <summary>
12: /// 获取连接字符串,用于指向特定数据库。
13: /// </summary>
14: string GetConnectionString();
15: }
如果指定了dataSourceSetter属性,那么在读取配置文件时将实例化dataSourceSetter类型,并用获取到accessType和connectionString覆盖配置节中的设定值。
dataSourceSetter属性的价值在于:系统可以在运行时任意确定和切换所要访问的数据库,而不是在配置项中固定不变。所要做的仅仅是实现一个IDataSourceSetter的类型。