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

MySQL Connector/NET 8.0.13 的变化(2018-10-22,全面上市)

重要变化

  • 连接选项的默认值SslMode现在根据用于建立连接的协议而有所不同。Preferred此版本中已重新引入 该模式(请参阅经典 MySQL 协议和 X 协议的选项)。总结SslmodeConnector/NET 8.0(和 7.0)版本系列中的默认值:

    Connector/NET 8.0.13:Preferred模式是仅经典 MySQL 协议连接的默认模式。 Required模式仅是 X 协议连接的默认模式(Preferred模式不可用于 X 协议)。

    连接器/NET 8.0.8 到 8.0.12:Preferred任何连接都不支持模式。Required模式是经典 MySQL 协议和 X 协议连接的默认设置。

    Connector/NET 7.0.0 到 7.0.7:Preferred模式是经典 MySQL 协议和 X 协议连接的默认模式。(漏洞#28687769)

添加或更改的功能

  • 文档存储:对使用连接字符串创建会话的性能进行了增量改进。(缺陷号 28343655)

  • 连接器/NET 8.0.13 中添加了对 EF Core 2.1 的支持,同一连接器版本中停止了对 EF Core 2.0 的支持。其他版本的连接器/NET 继续支持 EF Core 2.0(请参阅 Entity Framework Core 支持)。

  • ConnectionTimeout连接选项和属性被重新实现 为 X 协议操作的选项(和属性 )Connect-TimeoutConnectTimeout超时行为的某些方面已更改(请参阅 仅限 X 协议的选项)。

    ConnectTimeout属性已添加到 MySqlX.XDevAPI.MySqlXConnectionStringBuilder 类中,现有ConnectionTimeout 属性已删除。

    ConnectionTimeout没有对经典 MySQL 操作 的选项(或属性)的现有实现进行任何修改 。

  • Connector/NET 现在为使用 X 协议的应用程序提供连接池。该实现包括 MySQLX.GetClient采用两个参数的新静态方法:( connectionData 连接字符串或 URI)和 connectionOptions (JSON 格式的字符串或包含池选项的匿名对象)。方法重载启用以下类型组合:

    MySQLX.GetClient(Object, Object)
    MySQLX.GetClient(Object, String)
    MySQLX.GetClient(String, Object)
    MySQLX.GetClient(String, String)

    GetClient返回新 Client对象,它从池中检索现有的和当前未使用的网络连接,重置它并使用它。关闭会话会将基础连接标记为未使用并将其返回到池中。连接选项配置如下:

    // Connection options of type String
    Client client = MySQLX.GetClient(ConnectionData, "{ \"pooling\": { \"maxSize\":  5, \"queueTimeout\": 5000 } }");
    
    // Connection options of type Object (anonymous object)
    Client client = MySQLX.GetClient(ConnectionData, new { pooling = new { maxSize = 5, queueTimeout = 5000 } });

    new当使用匿名对象配置连接选项时,必须使用 该关键字两次。连接选项有:enabledmaxSizemaxIdleTimequeueTimeout。有关详细信息,请参阅 连接和会话概念

修正错误

  • 和方法被添加到 CreateCommandBuilder类 中。感谢 Cédric Luthi 提供补丁。(漏洞 #28560189,漏洞 #92206)CreateDataAdapterMySqlClientFactory

  • 文档存储:调用方法时执行的连接器端验证Collection.CreateIndex 重复了服务器已经进行的一些检查。连接器现在仅验证 indexDefinition传递给该方法的值是具有正确结构的有效 JSON 文档。(缺陷号 28343828)

  • EF Core:将新属性(定义为数字、具有默认值且不是主键)添加到已包含具有该 AUTO_INCREMENT属性的主键列的实体时,会生成无效语法错误。此修复在添加属性之前首先验证实体属性(列)是主键。(缺陷号 28293927)

  • TIMESTAMP当从 MySQL 表中读取 该列时,Connector/NET 返回了错误的时区 。(漏洞#28156187)

  • 文档存储:Set与和 一起使用时,混合字母数字值(例如“1address”)会Unset导致操作引发异常。此修复解决了将混合值转换为标记以仅生成一个标记作为标识符的方式。(缺陷号 28094094)

  • EF Core:构建现有数据库所需的一些方法的实现不完整。(缺陷 #27898343,缺陷 #90368)

  • 当密钥由 MySQL 8.0 版本系列中的服务器生成时,尝试从应用程序中创建新的外键会导致异常。(漏洞 #27715069)

  • POINT在针对 MySQL 8.0 的应用程序中正确使用 类型变量会生成 SQL 语法错误。(漏洞 #27715007)

  • 的实现DbProviderFactory 阻止应用程序以通用方式连接到 MySQL。现在,调用该CreateDataAdapter 方法会返回一个有效的适配器而不是返回 null值。(错误#27292344,错误#88660)

  • 使用不区分大小写的比较逻辑初始化字段序号的区分大小写查找。此修复删除了原始的区分大小写的查找。(缺陷 #27285641,缺陷 #88950)

  • MySql.Data.Types.MySqlGeometry 使用表示空几何集合的字节数组调用 的构造函数生成ArgumentOutOfRangeException异常,而不是按预期创建类型。感谢 Peet Whittaker 提供的补丁。(错误#26421346,错误#86974)

  • 通过减少服务器建立和维护连接所需的操作系统详细信息的频率和范围,与 MySQL 建立的缓慢连接得到了改善。(漏洞 #22580399,漏洞 #80030)