MySQL Connector/NET Release Notes

9.2 Changes in MySQL Connector/NET 6.5.6 (2013-03-23, General Availability)

Functionality Added or Changed

  • Connector/NET now supports SHA-256 hashing for user account passwords. After you create an account following the steps outlined in SHA-256 Pluggable Authentication, just open a Connector/NET connection passing user and password. This feature works in both SSL and non-SSL secured connections. (Bug #15935128)

  • Connector/NET now supports the MySQL 5.6 feature to store connection-specific data in the server. A Connector/NET application can supply to the server a list of key/value pairs at login time. When you specify the connection option Connect_Attrs, a predefined set of attribute values is sent to the server. Connector/NET automatically transmits the following attributes:

    • _client_version

    • _os

    • _pid

    • _platform

    • _program_name

    • _thread

    To examine these connection-specific attributes on the server, query the Performance Schema tables described in Performance Schema Connection Attribute Tables. (Bug #15935112, WL #5924)

  • Connector/NET now supports the MySQL 5.6 password expiration protocol. See ALTER USER for the syntax to expire the password for a user. When you open a connection through Connector/NET that logs in as a user with an expired password, any statement issued through the connection produces a SET PASSWORD exception. When you create a connection in Visual Studio Server Explorer to a user with an expired password, a dialog prompts for a new password, after which the connection succeeds. (Bug #15935104, WL #6587)

  • When defining an entity with a DatabaseGeneratedOption.Identity value with Entity Framework Code First, you can now leave this column out of the column list for an INSERT or UPDATE statement. This feature is especially useful for defining a column with a default value corresponding to the CURRENT_TIMESTAMP() return value:

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public DateTime DateCreated { get; set; }
    

    (Bug #15935094)

Bugs Fixed

  • Setting cascadeDelete to true in DbMigration.AddForeignKey() results in ON DELETE RESTRICT foreign key constraints in generated DDL, rather than ON DELETE CASCADE as expected. (Bug #16398432, Bug #68457)

  • After opening a stored routine in the SQL Editor in Visual Studio and then changing its name, an error occurred with the message "Unable to load the stored procedure for editing" at the attempt to save the routine. (Bug #16390757)

  • When running a multithreaded service, you might receive the exception:

    The given key was not present in the dictionary
    

    The issue was fixed by enhancing the locking code within the ConnectionStringBuilder class. (Bug #16310698, Bug #68217)

  • When using EntityFramework 4.3 and Code First, generated foreign key identifiers could be longer than 64 characters, causing MySQLException errors. The fix renames any too-long identifiers using the name format FK_guid, where guid is a global unique identifier generated at runtime. (Bug #16286397, Bug #67285)

  • Connector/NET would throw a MySqlException exception when an invalid collection was passed to the GetSchema method. Now it throws an ArgumentException when an invalid collection name is passed to GetSchema, to be compliant with the API spec of System.Data.Common.DbConnection.GetSchema. The new behavior provides better compatibility with other data access providers such as ADO.NET. (Bug #16271425, Bug #67901)

  • When debugging a stored routine containing a DECIMAL variable, you might encounter the error:

    mismatched input ')' expecting COMMA
    

    A workaround was to include a second parameter of 0 in the variable declaration:

    DECLARE var_name DECIMAL(3, 0)
    

    The fix allows the Connector/NET debugger to handle DECIMAL variable declarations without the optional second field. (Bug #16079735, Bug #67975)

  • If a DateTime type in MySQL 5.6 was defined with milliseconds precision using Entity Framework Code First or EF Model First, the expected DateTime(n) column did not include the precision specification. (Bug #15972773)

  • Specifying the Default Command Timeout option in a connection string used with the MySQL Entity Framework provider had no effect. The command timeout was always 30 seconds. (Bug #14825670, Bug #67171)

  • A System.InvalidCastException exception could occur when calling a stored function. A workaround was to specify the CheckParameters=false connection option. (Bug #13864627, Bug #64633)