当前位置:主页   - 电脑 - 网站开发 - ASP.Net
DotNetNuke中理解{objectQualifier} {databaseOwner}
来源:网络   作者:   更新时间:2012-03-13
收藏此页】    【字号    】    【打印】    【关闭

  在DotNetNuke3.0中,如果我们用英文版安装的时候,在数据库中我们可以看到大部分表都有一个前缀“_DNN”。为什么要设置这个前缀呢,是因为利用objectqualifier(表现为前缀),可以允许在同一个数据库中建立多个主机。在每个存储过程和表中都指定了objectqualifier。例如,你可以设置一个主机利用 'DNN1'作为前缀,同时设置另一个主机的前缀为'DNN2'。通过这种方式,可以在同一个数据库中生成两个用户表,其结构一致,功能一致,但是一个表名为“DNN1_Portals”,另一个表名为“DNN2_Portals”。这两个表且能够在同一个数据库并行运行,而不相互影响。

  在什么地方设置表安装时候的前缀呢?在DNN3.0 web.config(第273行)中,我们可以看看

  <data defaultProvider="SqlDataProvider">
    <providers>
      <clear />
      <add name="SqlDataProvider"
        type="DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider"
        connectionStringName="SiteSqlServer"
        upgradeConnectionString=""
        providerPath="~ProvidersDataProvidersSqlDataProvider"
        objectQualifier="DNN"
        databaseOwner="dbo" />
    </providers>
  </data>

  在这个xml节中,objectQualifier="DNN"设置了前缀,所有的表和存储过程,就加上了这个相应地前缀。上边的实例中,只不过在这里设置了两个不同的前缀而已,一个为"DNN1",一个为"DNN2"罢了。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明