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