Строка подключения к базе данных и сопоставление - PullRequest
2 голосов
/ 25 января 2010

Можно ли установить параметры сопоставления в строке подключения 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 ]

1 голос
/ 27 января 2010

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

0 голосов
/ 24 февраля 2017

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

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

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

...