首页 > 编程 > .NET > 正文

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

2024-07-21 02:22:49
字体:
来源:转载
供稿:网友
为了保持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的各个模块设置不同的数据访问方案,当然也就可以使用多个不同的数据库了。

系统使用的数据访问方案配置
下面该是最重要的配置节出场了
<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:这个就不多说了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表