2013-03-21 4 views
1

Я создал модуль, который использует таблицу DNN Users.
Но сегодня я получаю ошибку в проводнике, что Users таблица не существует.
Когда я посмотрел в базе данных, я увидел, что Users имя таблицы фактически dbo_Users.
Я думал, что таблица DNN Users всегда имеет одно и то же имя, но это не швы.

В чем причина того, что dnn добавил этот префикс в таблицу (все таблицы DNN) и как узнать, имеет ли таблица этот префикс?Таблица пользователей не существует

+0

Это символ подчеркивания или точки? dbo.Users будут указывать таблицу пользователей в схеме dbo. –

+0

Нет, это не подчеркивание, а не схема. Впервые я вижу, что таблицы dnn по умолчанию имеют префикс tbl_TableName. – 1110

ответ

3

DotNetNuke позволяет настроить сайт с «object qualifier» для базы данных (а также для владельца собственной схемы/базы данных). Это позволяет немного повысить безопасность и дает возможность размещать несколько приложений в одной базе данных, избегая конфликтов имен. Ни одна из этих причин не очень хороша, и некоторые используют эту функцию, но вы все равно сталкиваетесь с ней время от времени.

Вы можете использовать DotNetNuke.Common.Utilities.Config.GetObjectQualifer(), чтобы получить квалификатор объекта текущего сайта.

В любых сценариях, которые вы запускаете как часть установки пакета, DNN автоматически заменит токены {databaseOwner} и {objectQualifier} с правильным значением.

Если вы используете Entity Framework или LINQ to SQL, есть адаптеры моделей, которые были составлены Brandon Haynes, которые автоматически учитывают это.

+0

Я не на ПК, поэтому я не могу проверить на данный момент. Итак, как я понимаю, 'GetObjectQualifer()' должен возвращать 'dbo_' (в моем случае)? Поэтому, когда я создаю запрос, я могу использовать что-то вроде '" select * from "+ GetObjectQualifer() +" Users "'. – 1110

+0

Да, это правильно – bdukes

+0

Я бы также добавил, что квалификатор db хранится в файле web.config для справки, так что вы можете быстро найти его там. Однако вы не можете изменить его в web.config, потому что он используется при первоначальной установке сайта. –

Смежные вопросы