MySQL Connector/NET Release Notes
While MySqlDateTime.Millisecond
already
allowed a value between 0 and 999 (3 digit precision), a new
MySqlDateTime.Microsecond
property was added
to handle microseconds (6 digit precision) on
DateTime
values.
(Bug #20019257)
The "default table cache age" connection string property default is now 60 instead of 0. (Bug #19952133)
Generated code that matched against the start of a VARCHAR/CHAR column now correctly uses "LIKE" instead of location functions for the LINQ to Entity operators "StartsWith", "Contains", and "EndsWith". Locate functions do not make use of indexes placed on the VARCHAR/CHAR columns, which caused significant performance degradation. (Bug #19783747, Bug #19680236, Bug #19944400, Bug #72058)
Creating a Geometry Column with an SRID value would not save the value to the table. (Bug #19783444, Bug #19137999, Bug #19476721, Bug #71869)
Generated SQL was missing several clauses, such as OrderBy, GroupBy, and Skip), in cases that involved the "let" keyword, or in other scenarios that were translated into a DbApplyExpression. (Bug #19698010, Bug #19783760, Bug #19944549, Bug #73549)
LINQ to Entities queries failed for the cases that contained a
predicate using IList.Contains
with an
argument of "DbCastExpression, DbConstantExpression,
DbParameterReferenceExpression".
(Bug #19690370, Bug #19783755, Bug #19944528, Bug #73643)
A SELECT query that had a nullable DATETIME field in a child
.Any()
clause with an
.OrderBy()
would fail and emit a
NotImplementedException
exception.
(Bug #19681723, Bug #19795751, Bug #70722)
The query optimization routine would return statements with invalid table aliases when nested queries were being optimized. This would throw an "Unknown column" exception. (Bug #19681348, Bug #19934324, Bug #72004)
The "Feature will be installed when required" option was removed from the features list in the Connector/NET installer due to it not supporting on-demand installations because of dependencies with the assemblies. (Bug #19670596, Bug #19681113)
The fluent API DbModelBuilder.HasColumnType had no effect in Entity Framework 6. (Bug #19476922, Bug #19456229, Bug #19462808)
Setting a Primary Key GUID identity in "Code First" in Entity Framework 6 did not function with MySQL server 5.7. Inserting a row with a valid value for the GUID generated an error, even when it had a trigger set to the correct value.
As a workaround, it was necessary to redeclare the column definition to accept a dummy default, such as "default ''". (Bug #19456452, Bug #19462811, Bug #19476995)
Non Primary Keys declared as "Identity GUID" did not have their GUID's automatically generated. (Bug #19456415, Bug #19461919, Bug #19477029)
Creating a "Model First" or "Database First" model using MySQL 5.7 would set ProviderManifestToken to 5.6. (Bug #19453814, Bug #19475012)
"LINQ to Entities" queries that used Views with the
Take
operator were not correctly generated.
This problem affected EF "Database First" scenarios.
(Bug #19356006, Bug #19789288, Bug #72148)
Calling >MySqlConnection.GetSchema("PROCEDURES WITH PARAMETERS", ...) would generate an error about a nonexistent index. This affected Intellisense when completing stored procedures. (Bug #19289402)
Adding a new column to an existing model as identity and PK failed when applying the migration. The generated error was: "Incorrect table definition; there can be only one auto column and it must be defined as a key". (Bug #19268382, Bug #19286383)
When using Entity Framework 4.3 Code first Identifiers for
Migrations and Entity Framework 6, 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 #19211564, Bug #19483128)
References: This issue is a regression of: Bug #67285.
In Visual Studio, Connector/NET did not read the millisecond portion of a time value for a field of type TIME(3). (Bug #19211409, Bug #18111085)
When the connection limit was exceeded,
MySqlConnection.Open()
would leave the TCP
connections in a CLOSE_WAIT
state, but now
closes them.
(Bug #18665388, Bug #72025)
When a client refreshed a web page associated with an expired
session and if the ASP.NET project was using <SessionState
... regenerateExpiredSessionId="true" ...>, a "duplicate
entry" exception was generated from the
MySqlSessionProvider
.
(Bug #18657550, Bug #19783515, Bug #70409)
Entity Framework threw a
NullReferenceException
on insertion of a
record into tables that had an auto-increment, unsigned, bigint
primary key.
(Bug #18189217, Bug #19211404, Bug #71242)
“MaximumPoolSize” and “MinimumPoolSize” were not recognized as valid connection string options. (Bug #18182246, Bug #19484670)
When Connector/NET's SQL generator emitted code for the LINQ
Union()
or Concat()
operator, parentheses were not applied around the individual
SELECT
statements. That could cause a change
of meaning for the query when a Take()
operator (thus a LIMIT
clause in the SQL
code) was applied to the last SELECT
statement. With this fix, parentheses were put around individual
SELECT statements, so that the LIMIT
clause
will not be applied to the entire result of the
UNION
operation.
(Bug #18049691, Bug #19211182, Bug #19483110, Bug #70828)
During migrations with ASP.NET Identity 1.0 in Visual Studio,
the code generator did not generate the indexes and foreign keys
in the Up()
class.
(Bug #18049272, Bug #19483069, Bug #71287)
The value for the Keepalive
option in the
connection string was interpreted by Connector/NET to be in
milliseconds. This fix makes it to be interpreted as number of
seconds, as specified in the documentation.
(Bug #17981275, Bug #19211293, Bug #69484)
When using the Code First approach in Entity Framework 5, a LINQ query that checked whether a nullable column was null resulted in a faulty SQL query being generated. (Bug #17285548, Bug #69922)