Строка подключения к базе данных и сопоставление

Можно ли установить параметры сопоставления в строке подключения 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
  • Entity Framework 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();
}

2 ответа

Решение

Мы рекомендуем вам реализовать частичный метод OnContextCreated.
У вас есть доступ к подключению хранилища, и вы можете выполнить команду ADO.NET "SET COLLATION = ...", используя это подключение.

Если кто-то еще сталкивается с этой проблемой или хочет выполнить команду при открытии соединения: ответ относительно OnContextCreated больше не работает, так как метод больше не существует / больше не поддерживается.

Альтернатива, которую я использую для выполнения SET NAMES <character set used by the database> это добавить ;initialization command=\"SET NAMES '" + CharSet + "';\" к вашей строке подключения. Согласно документации Devart, это также работает для PostgreSQL, MSSQL и Oracle

Это свойство также можно установить внутри EntityDeveloper при доступе к свойствам соединения с базой данных и нажатии на Advanced кнопка.

Другие вопросы по тегам