Строка подключения к базе данных и параметры сортировки
-
22-09-2019 - |
Вопрос
Можно ли установить параметры сортировки соединений в строке подключения MySQL и как, поскольку на сервере есть настройка по умолчанию, которая используется для новых подключений.
Две вещи, которые я не могу сделать:
Не могу позвонитьне совсем верно, как вы можете видеть в правкеSET COLLATION_CONNECTION
после того, как я открою соединение, потому что я использую Entity Framework, который выполняет все вызовы за меня- Не удается изменить параметры сортировки подключений сервера по умолчанию из-за использования других баз данных и уважаемых приложений, которые их используют.
Все, что я хотел бы указать, это определенный параметр строки подключения в моем файле web.config, например:
"User id=dbuser;Password=dbpass;Host=dbserver;Database=testung;Collation=utf8_general_ci"
но Collation
настройка / переменная не распознана.
Используемые технологии
- Asp.net MVC 2
- IIS 7
- Структура сущности 1
- Соединитель DevArt dotConnect MySQL
- MySQL 5.1
ПРАВКА 1
Я попробовал этот код, как предложил @Devart но безрезультатно:
partial void OnContextCreated()
{
System.Data.Common.DbCommand command = this.Connection.CreateCommand();
command.CommandText = "set collation_connection = utf8_slovenian_ci;";
command.CommandType = System.Data.CommandType.Text;
this.Connection.Open();
command.ExecuteNonQuery();
// this.Connection.Close();
}
Решение
Мы рекомендуем вам реализовать частичный метод OnContextCreated.
В нем у вас есть доступ к соединению с хранилищем, и вы можете выполнить ADO.NET команду "УСТАНОВИТЬ параметры СОРТИРОВКИ = ...", используя это соединение.
Другие советы
Если кто-то еще столкнется с этой проблемой или захочет выдать команду при открытии соединения:Ответ относительно OnContextCreated больше не работает, поскольку метод больше не существует / больше не поддерживается.
Альтернатива, которую я использую для выполнения SET NAMES <character set used by the database>
состоит в том, чтобы добавить ;initialization command=\"SET NAMES '" + CharSet + "';\"
к вашей строке подключения.Согласно документации Devart, это также работает для PostgreSQL, MSSQL и Oracle
Это свойство также может быть установлено внутри EntityDeveloper при доступе к свойствам подключения к базе данных и нажатии на Advanced
кнопка.