Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/NET 8.0.22 的变化(2020-10-19,全面上市)

MySQL Connector/NET 8.0.22 的变化(2020-10-19,全面上市)

弃用和移除说明

  • 以下Server 连接字符串选项的同义词在 Connector/NET 8.0.22 中已弃用,并在 8.0.23 中删除:addressaddrnetwork address。(缺陷号 31248601)

添加或更改的功能

  • 命名空间的修订 MySql.Data.EntityFrameworkCore减少了公共类的数量。(缺陷号 31353208)

  • 以前,不支持客户端 mysql_clear_password身份验证插件。现在,通过 mysql_clear_password在客户端与任何需要明文密码的服务器端插件一起使用,允许在不进行散列或加密的情况下发送密码,例如用于 LDAP 可插入身份验证。如果请求插件,连接器/NET 将返回错误mysql_clear_password ,但连接既未加密也未使用 Unix 域套接字。有关使用信息,请参阅 客户端明文可插入身份验证。(缺陷号 30340510)

  • 为了增强现有 AllowLoadLocalInfile连接字符串选项的安全性,可以使用新选项指定从现在开始可以安全上传文件的单个文件夹 AllowLoadLocalInfileInPath(请参阅 仅限经典 MySQL 协议的选项)。

  • Connector/NET 现在支持 Entity Framework 6.4,当与通用 Windows 平台 (UWP) .NET 实现一起使用时,它扩展了提供程序的兼容性以包括 Linux 和 macOS 平台(请参阅 Entity Framework 6 支持)。Connector/NET 继续支持 Entity Framework 的 .NET Framework 实现。

  • Windows 和 Linux 现在支持使用 MySQL Enterprise Edition SASL LDAP 身份验证插件建立的连接,但 macOS 不支持。Connector/NET实现 SCRAM-SHA-1了SASL认证协议的认证方式。

  • 新的compression-algorithms连接选项设置了协商和选择支持的算法以通过 X 协议连接发送压缩数据的顺序(请参阅 仅限 X 协议的选项)。

  • 除了继续支持 .NET Core 和 .NET Framework 之外,Connector/NET 现在还包括对新的 .NET 5.0 框架的支持。我们对 .NET 5.0 和 Visual Studio 的预览版进行了兼容性测试,以鼓励早期采用者的努力。除其他功能外,.NET 5.0 通过充分利用 .NET Core、.NET Framework、Xamarin 和 Mono,提供统一的运行时行为和开发人员体验。

修正错误

  • 当连接字符串中未指定数据库名称时,过程名称在发送到服务器之前格式错误。(错误#31669587,错误#100306)

  • MySqlCommand.Prepare()在为选择列的语句调用 时,微秒被错误地反序列 化,导致返回结果中丢失尾随零。现在,该类计算滴答声,而不是将微秒转换为字符串。(错误#31623730,错误#100218)TIME(n)MySqlTime

  • MySqlConnection.GetSchema("Procedures") 返回文字字符串System.Byte[]作为ROUTINE_DEFINITION列的值,而不是实际的例程定义。(错误#31622907,错误#100208)

  • 类型的有效查询参数DateTime被错误解释为字符串值。(错误#31598178,错误#100159)

  • 存储过程的参数与 调用方法MySqlParameter时 对应的数据类型不匹配Prepare()不会产生异常。(错误#31458774,错误#99793)

  • 在用于从 ASP.NET Core 应用程序中的数据创建动态下拉列表的有效代码上报告了 SQL 语法错误。(漏洞 #31337609,漏洞 #99523)

  • 实体框架代码优先迁移省略了分配给实体的模式属性,尽管自动迁移最初似乎生成了一个具有正确模式值的表。使用模式名称的后续查询返回错误。(错误#31323788,错误#94343)

  • TINYINT使用脚手架时,从和 BIT数据类型到 的映射BOOLEAN 未按预期执行。(漏洞 #31304070,漏洞 #99419)

  • 当模型中的属性属性更改时 ,Entity Framework Core 迁移脚本替换 NULLNOT NULL已迁移表中的列 。MaxLength(漏洞 #31070175,漏洞 #96913)

  • Ubiety.Dns.Core.dllNuGet 包中包含 的二进制文件MySQL.Data是在调试模式下构建的,这会阻止将应用程序发布到 Microsoft Store。(漏洞 #31061034,漏洞 #98955)

  • 使用 Entity Framework 代码优先迁移且没有默认系统小数点分隔符(句点字符 ( .))的应用程序无法生成新数据库。现在,允许将系统小数点分隔符设置为不同的字符。(缺陷 #30965702,缺陷 #94358)

  • type 的每一列都CHAR(36)被解释为GUID,这可能会导致重新启动的应用程序使用 MySQL.Data包进行的第一个查询返回异常。此修复引入了专用格式 ( 8-4-4-4-12) 来正确解释列类型。(缺陷 #29963760,缺陷 #93399)

  • 连接器/NET 代码没有 MySql.Data.Properties.ReservedWords.txt 一致地从程序集资源中读取,并且可能返回一组不完整的保留关键字。(漏洞 #27536342,漏洞 #89639)

  • MySqlCommand.CommandTimeout当设置为负数 时不会发生错误 ,但是,随后将其设置为正数会返回异常。(漏洞 #26574860,漏洞 #87316)

  • 当来自 Windows 窗体应用程序的外部包装器建立连接时,该TcpClient实现限制了一些连接选项。此修复允许在不返回错误的情况下调用相关的外部析构函数。(漏洞 #26427802,漏洞 #82810)

  • 在调用时不为空的连接中取消命令后,在调试模式下返回异常 CancelQuery。感谢 Denis Yarkovoy 改进了验证补丁。(错误#26362494,错误#86836)

  • DbContext.Database.Migrate()方法没有成功,因为__efmigrationshistory 未找到该表。此修复修改了验证表是否存在的方法。(漏洞 #25901276,漏洞 #85902)

  • 当零参数值传递给 MySqlParameter构造函数时,Connector/NET MySqlDbType默认使用枚举进行类型映射,并将值更改为NULL. 此修复将默认类型映射到int32. (漏洞 #25573071,漏洞 #85027)

  • 实体框架代码优先迁移在生成的二进制列中排除了长度说明符。(漏洞 #23171349,漏洞 #81179)

  • Create Table使用 Entity Framework 生成的语句缺少一些分号,这导致 MySQL 服务器返回错误。(缺陷 #22669961,缺陷 #80159)