MySQL 连接器/NET 发行说明  / MySQL Connector/Net 6.8 中的变化  /  MySQL Connector/NET 6.8.4 的变化(2014-11-11,全面上市)

MySQL Connector/NET 6.8.4 的变化(2014-11-11,全面上市)

修正错误

  • 虽然MySqlDateTime.Millisecond已经允许 0 到 999(3 位精度)之间的值, MySqlDateTime.Microsecond但添加了一个新属性来处理 DateTime值的微秒(6 位精度)。(缺陷号 20019257)

  • “默认表缓存期限”连接字符串属性默认值为 60 而不是 0。(缺陷 #19952133)

  • 与 VARCHAR/CHAR 列的开头匹配的生成代码现在可以正确使用“LIKE”而不是 LINQ to Entity 运算符“StartsWith”、“Contains”和“EndsWith”的位置函数。定位函数不使用放置在 VARCHAR/CHAR 列上的索引,这会导致性能显着下降。(错误#19783747、错误#19680236、错误#19944400、错误#72058)

  • 创建具有 SRID 值的几何列不会将该值保存到表中。(错误#19783444、错误#19137999、错误#19476721、错误#71869)

  • 在涉及“let”关键字的情况下,或在其他已转换为 DbApplyExpression 的情况下,生成的 SQL 缺少多个子句,例如 OrderBy、GroupBy 和 Skip。(错误#19698010、错误#19783760、错误#19944549、错误#73549)

  • IList.Contains对于包含使用参数“DbCastExpression、DbConstantExpression、DbParameterReferenceExpression” 的谓词的情况,LINQ to Entities 查询失败。(错误#19690370、错误#19783755、错误#19944528、错误#73643)

  • .Any()在带有的子句中具有 可空 DATETIME 字段的 SELECT 查询 .OrderBy()将失败并发出 NotImplementedException异常。(错误#19681723、错误#19795751、错误#70722)

  • 在优化嵌套查询时,查询优化例程将返回具有无效表别名的语句。这将引发“未知列”异常。(错误#19681348、错误#19934324、错误#72004)

  • “功能将在需要时安装”选项已从连接器/NET 安装程序的功能列表中删除,因为它不支持按需安装,因为它与程序集存在依赖关系。(错误#19670596,错误#19681113)

  • 流畅的 API DbModelBuilder.HasColumnType 在 Entity Framework 6 中没有效果。(Bug #19476922、Bug #19456229、Bug #19462808)

  • 在 Entity Framework 6 的“Code First”中设置主键 GUID 身份在 MySQL 服务器 5.7 中不起作用。插入具有有效 GUID 值的行会产生错误,即使它已将触发器设置为正确的值。

    作为解决方法,必须重新声明列定义以接受虚拟默认值,例如“默认值”。(错误#19456452、错误#19462811、错误#19476995)

  • 声明为“Identity GUID”的非主键没有自动生成它们的 GUID。(错误#19456415、错误#19461919、错误#19477029)

  • 使用 MySQL 5.7 创建“模型优先”或“数据库优先”模型会将 ProviderManifestToken 设置为 5.6。(错误#19453814,错误#19475012)

  • Take未正确生成 将视图与运算符一起使用的“LINQ to Entities”查询 。此问题影响了 EF“数据库优先”方案。(错误#19356006、错误#19789288、错误#72148)

  • 调用>MySqlConnection.GetSchema("PROCEDURES WITH PARAMETERS", ...)会产生关于不存在的索引的错误。这会在完成存储过程时影响 Intellisense。(漏洞 #19289402)

  • 应用迁移时,将新列添加到现有模型作为标识和 PK 失败。生成的错误是:“表定义不正确;只能有一个自动列,并且必须将其定义为键”。(错误#19268382,错误#19286383)

  • 使用 Entity Framework 4.3 Code first Identifiers for Migrations 和 Entity Framework 6 时,生成的 外键标识符可能超过 64 个字符,从而导致 MySQLException错误。该修复使用名称格式重命名任何太长的标识符 ,其中 是在运行时生成的全局唯一标识符。(错误#19211564,错误#19483128)FK_guidguid

    参考:这个问题是 Bug #67285 的回归。

  • 在 Visual Studio 中,Connector/NET 不读取类型为TIME(3)的字段的时间值的毫秒部分。(漏洞 #19211409,漏洞 #18111085)

  • 当超过连接限制时, MySqlConnection.Open()将使 TCP 连接保持CLOSE_WAIT状态,但现在关闭它们。(漏洞 #18665388,漏洞 #72025)

  • 当客户端刷新与过期会话关联的网页时,如果 ASP.NET 项目正在使用 <SessionState ... regenerateExpiredSessionId="true" ...>,则会从 MySqlSessionProvider. (错误#18657550、错误#19783515、错误#70409)

  • 实体框架将 NullReferenceException记录插入到具有自动递增、无符号、bigint 主键的表中。(错误#18189217、错误#19211404、错误#71242)

  • MaximumPoolSizeMinimumPoolSize未被识别为有效的连接字符串选项。(错误#18182246,错误#19484670)

  • Union()当 Connector/NET 的 SQL 生成器为 LINQ或运算符 发出代码时 Concat() ,括号不会应用于各个 SELECT语句。Take() 当运算符(因此是LIMITSQL 代码中的一个子句)应用于最后一个语句时,这可能会导致查询的含义发生变化SELECT 。有了这个修复,括号被放在单独的 SELECT 语句周围,这样LIMIT子句就不会应用于整个 UNION操作结果。(错误#18049691、错误#19211182、错误#19483110、错误#70828)

  • 在 Visual Studio 中使用 ASP.NET Identity 1.0 进行迁移期间,代码生成器未在Up()类中生成索引和外键。(错误#18049272、错误#19483069、错误#71287)

  • KeepaliveConnector/NET 将连接字符串中选项 的值解释为以毫秒为单位。此修复使其被解释为秒数,如文档中指定的那样。(错误#17981275、错误#19211293、错误#69484)

  • 在 Entity Framework 5 中使用 Code First 方法时,检查可空列是否为空的 LINQ 查询会导致生成错误的 SQL 查询。(漏洞 #17285548,漏洞 #69922)