MySQL 连接器/NET 发行说明  / MySQL Connector/Net 6.6 中的变化  /  MySQL Connector/NET 6.6.3 的变化(2012-09-28,测试版)

MySQL Connector/NET 6.6.3 的变化(2012-09-28,测试版)

对 6.6 功能集的持续改进和修复。对可插入身份验证的支持,以及编写您自己的身份验证插件的能力,现在可以使用了。

添加或更改的功能

  • 您现在可以编写自定义身份验证插件,利用 MySQL 5.5.16 及更高版本中可用的可插入身份验证功能。有关详细信息,请参阅 编写自定义身份验证插件

修正错误

  • 在某些情况下, CacheServerProperties=true连接字符串中的设置可能会导致Packet too large错误。启用连接池 CacheServerProperties=true后,第一个连接按预期工作,但如果查询超过 1024 字节,第二个、第三个等等连接失败。(缺陷 #14593547,缺陷 #66578)

  • Connector/NET 不支持创建具有字符串类型键的实体。在创建数据库的过程 MySqlException中,抛出 一个BLOB/TEXT column 'Name' used in key specification without a key length. 提供者生成的 DDL 指定了MEDIUMTEXT主键的列,但没有指定键的长度。在使用 Entity Framework 版本 4.3 及更高版本时,此修复尤为重要,因为 __MigrationsHitory表(替换 EdmMetadata表)使用字符串属性作为其键。(错误#14540202、错误#65289、错误#64288)

  • 尝试执行以下语句时, 可能ExecuteNonQuery()会返回错误 :Parameter '?' must be defined

    insert into table_name (Field1, Field1) VALUES(?,?)

    也就是说,当用两个不同的?占位符引用同一个字段两次时。(缺陷 #14499549,缺陷 #66060)

  • 当使用 MySQL 数据库设置为UTF32 ASP.net 成员数据库时,Web 应用程序可能会出现 密钥太长错误,并且网站管理工具无法连接到提供商。原因是 my_aspnet_sessions.SessionId当从Latin1字符集 转换为每个字符 4 个字节时,列超过了主键UTF32的长度限制:

    Specified key was too long; max key length is 767 bytes

    (缺陷 #14495292,缺陷 #65144)

  • NullReferenceException尝试插入带有空VALUES子句的新记录时 ,MySQL Connector/NET EntityFramework 提供程序会抛出异常 。INSERT当表中唯一需要的 ( NOT NULL) 列是主键自动递增列时,这样的方法应该有效。(缺陷 #14479715,缺陷 #66066)

  • 使用 Entity Data Model Designerdecimal 类型和CreateDatabase函数,值在小数点右侧存储为 0 位。通过此修复,默认值为小数点右侧的 2 位数字,并且可以正确应用通过实体数据模型设计器指定的任何精度。(错误#14474342,错误#65127)

  • 通过在 Code First 项目的方法中调用方法来自定义精度 HasPrecision()OnModelCreating()始终生成精度设置 (10,2) 而不是指定的精度。(缺陷 #14469048,缺陷 #65001)

  • 通过 MySql.Data.MySqlClient.MySqlCommand()类构建命令时,内存可能会泄漏,因为某些 IO.MemoryStream实例没有被有效释放。内存泄漏可能是 SQL 密集型应用程序中的一个问题,例如处理大量INSERT 语句的日志记录应用程序。(错误#14468204,错误#65696)

  • 将 ASP.net 网络安全功能与 MySQL 数据库一起使用时,使用访问 my_aspnet_usersinroles表的功能会导致异常:

    MySql.Data.MySqlClient.MySqlException: Table 'testdb.my_aspnet_usersinrole' doesn't exist.

    例如,尝试从角色中删除用户或在角色中查找用户时可能会发生此错误。该修复程序将表名的拼写更正为 my_aspnet_usersinroles. (缺陷 #14405338,缺陷 #65805)

  • 虽然成员变量 MySqlCommand.LastInsertedId是 64 位的 long,但它的值实际上被限制在最大值Int32(2,147,483,647)。如果主键超过此值,则 的值 LastInsertedId是错误的。对于具有大量行的表,这种不匹配可能是个问题。(漏洞 #14171960,漏洞 #65452)

  • 使用 Entity Framework Code First 方法时,生成的代码可能会 MEDIUMTEXT在其他类型VARCHAR 更合适的上下文中使用数据类型,从而导致错误,例如:

    error 0064: Facet 'MaxLength' must not be specified for type 'mediumtext'.

    (漏洞 #13582335,漏洞 #63920)