此版本修复了自 6.2.0 以来的错误。
该类
MySqlParameter
现在有一个名为 的属性PossibleValues
。除非该参数是由创建的,否则此属性为 NULLMySqlCommandBuilder.DeriveParameters
。此外,除非参数是枚举或集合类型,否则它将为 NULL - 在这种情况下,它将是一个字符串列表,这些字符串是该列的可能值。此功能旨在帮助开发人员。(漏洞 #48586)-
在 MySQL Connector/NET 6.2 之前,
MySqlCommand.CommandTimeout
包括用户处理时间,即与直接使用连接器无关的处理时间。超时是通过 .NET 计时器实现的,该计时器会在CommandTimeout
几秒后触发。MySQL Connector/NET 6.2 引入了与 Microsoft 处理
SqlCommand.CommandTimeout
. 此属性是命令执行或结果处理期间所有网络读取和写入的累积超时。返回第一行后方法中仍可能发生超时MySqlReader.Read
,并且不包括用户处理时间,仅包括 IO 操作。有关这方面的更多详细信息,请参阅相关的 Microsoft 文档。
-
从 MySQL Connector/NET 6.2 开始,有一个后台作业每三分钟运行一次,并从池中删除空闲(未使用)超过三分钟的连接。池清理释放客户端和服务器端的资源。这是因为在客户端,每个连接都使用一个套接字,而在服务器端,每个连接都使用一个套接字和一个线程。
在此更改之前,连接从未从池中删除,并且池始终包含打开连接的峰值数。例如,一个峰值为 1000 个并发数据库连接的 Web 应用程序将在服务器上消耗 1000 个线程和 1000 个打开的套接字,而不会从连接池中释放这些资源。
MySQL Connector/NET 现在支持在连接到启用 SSL 的 MySQL 服务器时处理证书。有关详细信息,请参阅教程:使用连接器/NET 配置 SSL。
-
的克隆
MySqlCommand
不是类型安全的。要克隆 aMySqlCommand
,必须执行以下操作:MySqlCommand clone = (MySqlCommand)((ICloneable)comm).Clone();
MySQL Connector/NET 已更改,以便可以执行以下操作:
MySqlCommand clone = comm.Clone();
(漏洞 #48460)
-
使用时,
Encrypt
连接字符串选项导致生成“不支持关键字”异常。该选项实际上已过时,应改用选项 SSL 模式。尽管该
Encrypt
选项已得到修复,因此它不会生成异常,但它将在 6.4 版中完全删除。(漏洞 #48290) -
在
MySql.Data
安装了 .NET Framework 3.5 的情况下构建项目时,显示以下构建输出:Project file contains ToolsVersion="4.0", which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion="3.5".
该项目是使用 .NET Framework 4.0(测试版)创建的,而不是使用 3.5 框架。(漏洞 #48271)
-
如果值大于 .NET 类型支持的值,则无法从 MySQL 服务器表中检索值
System.Decimal
。MySQL Connector/NET 已更改为公开
MySqlDecimal
类型以及支持方法GetMySqlDecimal
。(漏洞 #48100) 从包含具有类型列的表
UNSIGNED BIGINT
和表视图的模式创建的实体模型行为不正确。创建实体并将其映射到视图时,类型的列UNSIGNED BIGINT
显示为BIGINT
。(漏洞 #47872)MySQL 连接器/NET 会话支持不适用于 5.0 之前的 MySQL 服务器版本,因为会话提供程序使用对 的调用
TIMESTAMPDIFF
,这在 5.0 之前的服务器上不可用。(漏洞 #47219)