DotNetNuke3研究报告二(数据访问)

       为了保持DNN对数据访问的通用性,DNN3的开发者们对数据调用进行了精心的设计。下面就让我们一起来领略DNN优异的数据访问方案吧!
        DNN的首先数据库是SqlServer,但绝不是局限于使用SqlServer而是适用于所有的存储方案。如:Oracle,Access......等,甚至可以是Xml文件或是一般的文本文件。
        Dnn3使用何种数据访问方案,是由web.config中的配置决定的。

    •  数据访问方案配置读取
      <sectionGroup name="dotnetnuke">
             <section name="data" type="DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke" />
       </sectionGroup>
            该节配置决定了,Dnn的数据访问方案的配置是通过DotNetNuke命名空间中的DotNetNuke.Framework.Providers.ProviderConfigurationHandler类来处理的
    • 具体的数据访问方案配置参数     
       <appSettings>
          <add key="SiteSqlServer" value="Server=192.168.0.5;Database=DNN;uid=sa;pwd=good;" />
       </appSettings>

      该节配置添加了一个Appsetings的选项,一般来说是作为数据库连接的配置,这里你可以根据自己的需要,改成其他的名字和字符串值。
    • 模块使用的数据访问方案配置
      在web.config中,你会发现多处类似于以下配置的内容,
      <providers>
          <add name="DNNSQLRoleProvider"
           type="DotNetNuke.Security.Role.DNNSQLRoleProvider, DNNSQLRoleProvider"
           connectionStringName="SiteSqlServer"
           applicationName="/"
           description="Stores and retrieves roles data from the local Microsoft SQL Server database" />
       </providers>

      这些配置节是DNN用来为每个模块设置数据访问方案的,所以我们甚至可以为DNN的各个模块设置不同的数据访问方案,当然也就可以使用多个不同的数据库了。
  1. 系统使用的数据访问方案配置
    下面该是最重要的配置节出场了
    <dotnetnuke>
    <data defaultProvider="SqlDataProvider">
       <providers>
          <clear />
          <add name="SqlDataProvider"
            type="DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider"
            connectionStringName="SiteSqlServer"
           upgradeConnectionString=""
            providerPath="~/Providers/DataProviders/SqlDataProvider/"
            objectQualifier=""
            databaseOwner="dbo" />
       </providers>
      </data>
    </dotnetnuke>

    这一节是DNN主程序配置数据访问方案的地方,defaultProvider指明了当没有特殊指定的情况下Dnn内部各模块应该使用的数据访问对象。在<data>节,你可以添加多个数据访问对象
           <clear/>
    表示清除所有的数据访问对象,
           <add >表示添加一个数据访问对象。
                    type:指明实现该数据访问对象的实际的类,由于DNN使用反射的原理来创建具体的数据访问对象,所以一定要确保实现该类的装配件是可访问的。
                    connectStringName:配置数据连接方案的配置节的名字
                    upgradeConnectionString:更新数据库时使用的连接配置节的名字,如果保持为空,表示使用和connectStringName相同的值。
                    providerPath:实现数据访问对象的装配件的位置
                    objectQualifier:用于区别数据库中不同对象的标识,这样当包含多个站点时其生成的表和存储过程会自动添加该前缀,以和其他站点区分开来。
                    databaseOwner:这个就不多说了。

      

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值