MySQL Connector/NET Release Notes
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)
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)
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)
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_
, where
guid
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(
column
did not include the precision specification.
(Bug #15972773)n
)
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)