MySQL Blog Archive
For the latest blogs go to blogs.oracle.com/mysql
MySQL Connector/NET 8.0.13 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.13 is the first version to support
Entity Framework Core 2.1 and the third general availability release
of MySQL Connector/NET to add support for the new X DevAPI,which
enables application developers to write code that combines the
strengths of the relational and document models using a modern,
NoSQL-like syntax that does not assume previous experience writing traditional SQL.

To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/index.html. For more
information about how the X DevAPI is implemented in Connector/NET, see
http://dev.mysql.com/doc/dev/connector-net.

NuGet packages provide functionality at a project level. To get the
full set of features available in Connector/NET such as availability
in the GAC, integration with Visual Studio’s Entity Framework Designer
and integration with MySQL for Visual Studio, installation through
the MySQL Installer or the stand-alone MSI is required.

For general documentation about how to get started using MySQL
as a document store, see
http://dev.mysql.com/doc/refman/8.0/en/document-store.html.

To download MySQL Connector/NET 8.0.13, see
http://dev.mysql.com/downloads/connector/net/

Installation instructions can be found at
https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html


Changes in MySQL Connector/NET 8.0.13 (2018-10-22, General Availability) 

     * Important Changes

     * Functionality Added or Changed

     * Bugs Fixed

Important Changes


     * The default value for the SslMode connection option now
       differs based on the protocol used to make the
       connection. The Preferred mode has been reintroduced in
       this release (see Options for Both Classic MySQL Protocol
       and X Protocol
       (http://dev.mysql.com/doc/connector-net/en/connector-net-8-0-connection-options.html#connector-net-8-0-connection-options-classic-xprotocol).
       To summarize the default  Sslmode values in the Connector/NET 8.0 (and 7.0) release series:

       Connector/NET 8.0.13: Preferred mode is the default for
       classic MySQL protocol connections only. Required mode is
       the default for X Protocol connections only (Preferred
       mode is not available for use with X Protocol).

       Connector/NET 8.0.8 to 8.0.12: Preferred mode is not
       supported for any connections. Required mode is the
       default for both classic MySQL protocol and X Protocol
       connections.

       Connector/NET 7.0.0 to 7.0.7: Preferred mode is the
       default for both classic MySQL protocol and X Protocol
       connections. (Bug #28687769)


Functionality Added or Changed

     * Document Store: An incremental improvement was made to
       the performance of session creation with a connection
       string. (Bug #28343655)

     * Support for EF Core 2.1 was added to Connector/NET 8.0.13
       and support for EF Core 2.0 was discontinued in the same
       connector version. Other versions of Connector/NET
       continue to support EF Core 2.0 (see Entity Framework
       Core Support
       (http://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html).

     * The ConnectionTimeout connection option and property were
       reimplemented as the Connect-Timeout option (and the
       ConnectTimeout property) for X Protocol operations. Some
       aspects of the timeout behavior were changed (see Options
       for X Protocol Only
       (http://dev.mysql.com/doc/connector-net/en/connector-net-8-0-connection-options.html#connector-net-8-0-connection-options-xprotocol).
       The new ConnectTimeout property was added to the
       MySqlX.XDevAPI.MySqlXConnectionStringBuilder class and
       the existing ConnectionTimeout property was removed.

       No modifications were made to the existing implementation
       of the ConnectionTimeout option (or property) for classic
       MySQL operations.

     * Connector/NET now provides connection pooling for
       applications using the X Protocol. The implementation
       includes the new static MySQLX.GetClient method that
       takes two parameters: connectionData (connection string
       or URI) and connectionOptions (JSON-formatted string or
       anonymous object containing the pooling options).
       

       Method overloading enables the following type combinations:
        MySQLX.GetClient(Object, Object)
        MySQLX.GetClient(Object, String)
        MySQLX.GetClient(String, Object)
        MySQLX.GetClient(String, String)

       GetClient returns the new Client object, which retrieves
       an existing and currently unused network connection from
       the pool, resets it, and uses it. Closing a session marks
       the underlying connection as unused and returns it to the
       pool.

       Connection options are configured as follows:
       // Connection options of type String
        Client client = MySQLX.GetClient(ConnectionData, "{ \"pooling\": { \"maxSize\":  5, \"queueTimeout\": 5000 } }");

      // Connection options of type Object (anonymous object)
       Client client = MySQLX.GetClient(ConnectionData, new { pooling = new {maxSize = 5, queueTimeout = 5000 } });

       The new keyword must be used twice when the connection
       options are configured using an anonymous object.
       Connection options are: enabled, maxSize, maxIdleTime,
       and queueTimeout. For more information, see Connection
       and Session Concepts
       (http://dev.mysql.com/doc/x-devapi-userguide/en/devapi-connection-concepts.html).

Bugs Fixed

     * Document Store: Connector-side validation performed when
       the Collection.CreateIndex method was called duplicated
       some of the checks already made by the server. The
       connector now only validates that the indexDefinition
       value passed to the method is a valid JSON document with
       the correct structure. (Bug #28343828)

     * EF Core: An invalid syntax error was generated when a new
       property (defined as numeric, has a default value, and is
       not a primary key) was added to an entity that already
       contained a primary-key column with the AUTO_INCREMENT
       attribute. This fix validates that the entity property
       (column) is a primary key first before adding the
       attribute. (Bug #28293927)

     * Document Store: A mixed alphanumeric value such as
       "1address" when used with the Set and Unset methods
       caused the operations to throw an exception. This fix
       resolves the way mixed values are converted into tokens
       to generate only one token as an identifier. (Bug
       #28094094)

     * EF Core: The implementation of some methods required to
       scaffold an existing database were incomplete. (Bug
       #27898343, Bug #90368)

     * Attempts to create a new foreign key from within an
       application resulted in an exception when the key was
       generated by a server in the MySQL 8.0 release series.
       (Bug #27715069)

     * A variable of type POINT when used properly within an
       application targeting MySQL 8.0 generated an SQL syntax
       error. (Bug #27715007)

     * The case-sensitive lookup of field ordinals was
       initialized using case-insensitive comparison logic. This
       fix removes the original case-sensitive lookup. (Bug
       #27285641, Bug #88950)

     * The MySql.Data.Types.MySqlGeometry constructor called
       with an array of bytes representing an empty geometry
       collection generated an ArgumentOutOfRangeException
       exception, rather than creating the type as expected.
       Thanks to Peet Whittaker for the patch. (Bug #26421346,
       Bug #86974)

     * Slow connections made to MySQL were improved by reducing
       the frequency and scope of operating system details
       required by the server to establish and maintain a
       connection. (Bug #22580399, Bug #80030)


On Behalf of MySQL Release Engineering team,
Surabhi Bhat