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:這個就不多說了。