1

我制作了一个使用UsersDNN 表的模块。
但是今天我收到Users表不存在的有线错误。
当我查看数据库时,我看到Users表名实际上是dbo_Users.
我认为 DNNUsers表总是具有相同的名称,但它似乎不是。

dnn 将该前缀添加到表(所有 DNN 表)的原因是什么,我如何知道表是否具有该前缀?

4

1 回答 1

3

DotNetNuke 允许为数据库(以及自定义模式/数据库所有者)设置带有“对象限定符”的站点。这样可以提高安全性,并有可能在同一数据库中托管多个应用程序,同时避免命名冲突。这些原因都不是很好,很少有人使用该功能,但是您仍然不时遇到它。

您可以使用DotNetNuke.Common.Utilities.Config.GetObjectQualifer()来获取当前站点的对象限定符。

在作为包安装的一部分运行的任何脚本中,DNN 将自动替换{databaseOwner}{objectQualifier}使用正确的值标记。

如果您使用Entity FrameworkLINQ to SQL,则有由 Brandon Haynes 组合在一起的模型适配器,它们会自动将这些考虑在内。

于 2013-03-21T21:02:03.373 回答