Я создал модуль, который использует таблицу DNN Users
.
Но сегодня я получаю ошибку в проводнике, что Users
таблица не существует.
Когда я посмотрел в базе данных, я увидел, что Users
имя таблицы фактически dbo_Users
.
Я думал, что таблица DNN Users
всегда имеет одно и то же имя, но это не швы.
В чем причина того, что dnn добавил этот префикс в таблицу (все таблицы DNN) и как узнать, имеет ли таблица этот префикс?Таблица пользователей не существует
ответ
DotNetNuke позволяет настроить сайт с «object qualifier» для базы данных (а также для владельца собственной схемы/базы данных). Это позволяет немного повысить безопасность и дает возможность размещать несколько приложений в одной базе данных, избегая конфликтов имен. Ни одна из этих причин не очень хороша, и некоторые используют эту функцию, но вы все равно сталкиваетесь с ней время от времени.
Вы можете использовать DotNetNuke.Common.Utilities.Config.GetObjectQualifer()
, чтобы получить квалификатор объекта текущего сайта.
В любых сценариях, которые вы запускаете как часть установки пакета, DNN автоматически заменит токены {databaseOwner}
и {objectQualifier}
с правильным значением.
Если вы используете Entity Framework или LINQ to SQL, есть адаптеры моделей, которые были составлены Brandon Haynes, которые автоматически учитывают это.
Я не на ПК, поэтому я не могу проверить на данный момент. Итак, как я понимаю, 'GetObjectQualifer()' должен возвращать 'dbo_' (в моем случае)? Поэтому, когда я создаю запрос, я могу использовать что-то вроде '" select * from "+ GetObjectQualifer() +" Users "'. – 1110
Да, это правильно – bdukes
Я бы также добавил, что квалификатор db хранится в файле web.config для справки, так что вы можете быстро найти его там. Однако вы не можете изменить его в web.config, потому что он используется при первоначальной установке сайта. –
- 1. Таблица «MyDjango.django_admin_log» не существует
- 2. Таблица rails_project.users не существует: ПОКАЗАТЬ ПОЛНЫЕ ОБЛАСТИ ОТ пользователей
- 3. Joomla 3.2 Ошибка установки: Таблица группы пользователей не существует
- 4. Получение Таблица не существует ошибка, но таблица существует (ActiveRecord :: StatementInvalid mysql2 :: Ошибка: Таблица не существует)
- 5. Таблица 'sk43' не существует
- 6. Таблица не существует Ошибка
- 7. Таблица 'myDB.delayed_jobs' не существует
- 8. Таблица 'data_dictionary.CHARACTER_SETS' не существует
- 9. Таблица не существует MySQL
- 10. Примечание: Таблица не существует
- 11. таблица не существует
- 12. Таблица «XXX.pma__tracking» не существует
- 13. Таблица не существует
- 14. таблица не существует hibernate
- 15. Таблица 'database_name.username' не существует
- 16. SQL-таблица не существует
- 17. Таблица 'databasename.info' не существует
- 18. Таблица 'table' не существует
- 19. 1146 Таблица не существует
- 20. Таблица 'performance_schema.session_variables' не существует
- 21. Таблица Hibernate не существует
- 22. таблица woocommerce_order_items не существует
- 23. Таблица 'project_dev.users' не существует
- 24. Таблица thumbnail_kvstore не существует
- 25. Таблица ошибок «mysql.servers» не существует
- 26. Таблица RENAME, если таблица целей не существует
- 27. Таблица MySQL не существует, но она существует
- 28. MySQL таблица не существует, если она существует
- 29. Таблица не существует, но она существует
- 30. CakePHP login (не таблица пользователей)
Это символ подчеркивания или точки? dbo.Users будут указывать таблицу пользователей в схеме dbo. –
Нет, это не подчеркивание, а не схема. Впервые я вижу, что таблицы dnn по умолчанию имеют префикс tbl_TableName. – 1110