Вопрос

Можно ли установить параметры сортировки соединений в строке подключения MySQL и как, поскольку на сервере есть настройка по умолчанию, которая используется для новых подключений.

Две вещи, которые я не могу сделать:

  1. Не могу позвонить SET COLLATION_CONNECTION после того, как я открою соединение, потому что я использую Entity Framework, который выполняет все вызовы за меня не совсем верно, как вы можете видеть в правке
  2. Не удается изменить параметры сортировки подключений сервера по умолчанию из-за использования других баз данных и уважаемых приложений, которые их используют.

Все, что я хотел бы указать, это определенный параметр строки подключения в моем файле 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 кнопка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top