我制作了一个使用DNN Users
表格的模块
但今天我发现Users
表不存在的有线错误
当我查看数据库时,我看到Users
表名实际上是dbo_Users
我认为DNN Users
表总是有相同的名称,但它接缝不是。
dnn将该前缀添加到表(所有DNN表)的原因是什么?如何知道表是否具有该前缀?
答案 0 :(得分:3)
DotNetNuke允许为数据库(以及自定义架构/数据库所有者)设置一个“object qualifier”的站点。这样可以提高安全性,并且可以在同一数据库中托管多个应用程序,同时避免命名冲突。这些原因都不是很好,很少有人使用这个功能,但你时不时会遇到它。
您可以使用DotNetNuke.Common.Utilities.Config.GetObjectQualifer()
获取当前网站的对象限定符。
在您作为软件包安装的一部分运行的任何脚本中,DNN将自动使用正确的值替换{databaseOwner}
和{objectQualifier}
令牌。
如果您使用Entity Framework或LINQ to SQL,则Brandon Haynes会将模型适配器自动考虑在内。