2

是否可以在 MySql 连接字符串中设置连接排序规则以及如何设置,因为服务器上有一个用于新连接的默认设置。

不能做的两件事:

  1. 打开连接后无法调用SET COLLATION_CONNECTION,因为我使用的是实体框架,它为我完成所有调用 并不完全正确,正如您在编辑中看到的那样
  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();
}
4

2 回答 2

1

我们建议您实现 OnContextCreated 部分方法。
您可以访问其中的存储连接,并且可以使用此连接执行 ADO.NET 命令“SET COLLATION = ...”。

于 2010-01-27T09:12:52.960 回答
0

如果其他人偶然发现此问题或想在打开连接时发出命令:关于 OnContextCreated 的答案不再起作用,因为该方法不再存在/不再受支持。

我用于执行的另一种方法SET NAMES <character set used by the database>是附加;initialization command=\"SET NAMES '" + CharSet + "';\"到您的连接字符串。根据 Devart 的文档,这也适用于PostgreSQLMSSQLOracle

当访问数据库连接的属性并单击Advanced按钮时,也可以在 EntityDeveloper 中设置此属性。

于 2017-02-24T13:24:34.860 回答