MySQL Forums
Forum List  »  Announcements

MySQL Connector/Net 8.0.9-dmr has been released
Posted by: Gipson Pulla
Date: September 28, 2017 08:03AM

Dear MySQL users,

MySQL Connector/Net 8.0.9 is the sixth development release that expands
cross-platform support to Linux and macOS when using Microsoft's .NET Core
framework. Now, .NET developers can use the X DevAPI with .NET Core and
Entity Framework Core (EF Core) 1.0 to create server applications that run
on Windows, Linux and macOS. We are very excited about this change and
really look forward to your feedback on it!

MySQL Connector/Net 8.0.9 is also the eighth development release of MySQL
Connector/Net to add support for the new X DevAPI.  The X DevAPI 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.

Please note that the X DevAPI requires at least MySQL Server version
5.7.12 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/5.7/en/document-store.html.

To download MySQL Connector/Net 8.0.9-dmr, see the "Development
Releases" tab at http://dev.mysql.com/downloads/connector/net/

Changes in MySQL Connector/Net 8.0.9 (2017-09-28, Development Milestone)


     * Functionality Added or Changed

     * Bugs Fixed

   Functionality Added or Changed

     * For accuracy, the following Entity Framework 6 items were
       renamed:

          + NuGet package - MySql.Data.EntityFramework (was
            MySql.Data.Entity)

          + Namespace - MySql.Data.EntityFramework (was
            MySql.Data.Entity)

          + Assembly - MySql.Data.EntityFramework.dll (was
            MySql.Data.Entity.EF6.dll)
       (Bug #26396260)

     * X DevAPI: The SessionConfigManager.Update method was
       removed and the SessionConfigManager.Save method now
       always overwrites the data with the given key. For
       example:
SessionConfigManager.Save(
   "mysess",
   "{ \"uri\": \"mysqlx://myuser@localhost/mysess\", \"appdata\": { \"biz\": \"quux\" } }"
);

SessionConfigManager.Save(
   "mysess",
   "{ \"uri\": \"mysqlx://test@localhost/mysess\", \"appdata\": { \"tar\": \"zzzz\" } }"
);

       The mysess.uri and mysess.appdata values set by the first
       statement are replaced with the new values set by the
       second statement. (Bug #25829054, Bug #25860579)

     * MySQL Connector/Net now supports MySQL servers configured
       to use utf8mb4 as the default character set.

     * The following methods are available for use with EF Core
       in asynchronous command and connection operations:

          + Microsoft.EntityFrameworkCore.DbContext.AddAsync

          + Microsoft.EntityFrameworkCore.DbContext.AddRangeAsync

          + Microsoft.EntityFrameworkCore.DbContext.FindAsync

          + Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync

          + Microsoft.EntityFrameworkCore.Infrastructure.Databas
            eFacade.EnsureDeletedAsync

          + Microsoft.EntityFrameworkCore.Infrastructure.Databas
            eFacade.EnsureCreatedAsync

          + Microsoft.EntityFrameworkCore.DbContext.ToListAsync

     * X DevAPI: The following methods execute directly, whereas
       each method previously required .execute() as the final
       item in the method chain:

          + BaseSession.DropSchema

          + Collection.DropIndex

          + Schema.DropCollection

          + Schema.DropView
       In addition, the methods now succeed even if the objects
       to be dropped do not exist.

     * The AutoEnlist and IncludeSecurityAsserts
       connection-string options are not appropriate for use by
       applications that target .NET Core and now return an
       error when used.

     * EF Core: Support for explicit loading was added. Explicit
       loading is an object-relational mapper (O/RM) pattern
       introduced in EF Core 1.1.0, which enables .NET
       developers to explicitly load related data from the
       database at a later time.

     * The following connection-string options are not currently
       supported for use by applications that target .NET Core
       and now return an error when used:

          + SharedMemoryName

          + IntegratedSecurity

          + PipeName

          + Logging

          + UseUsageAdvisor

          + UsePerformanceMonitor

          + InteractiveSession

          + Replication

     * X DevAPI: To provide safe transactional document and row
       updates, the following new methods were added:

          + FindStatement.LockShared

          + FindStatement.LockExclusive

          + TableSelectStatement.LockShared

          + TableSelectStatement.LockExclusive
       The LockShared() and LockExclusive() methods can be
       called any number of times with either the
       Collection.Find() or Table.Select() method chains and in
       any combination. If multiple calls to the methods are
       made, only the final method is invoked. For additional
       information about the two types of locking, see Shared
       and Exclusive Locks
http://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html#innodb-shared-exclusive-locks

     * X DevAPI: When creating a new session, multiple hosts can
       be tried until a successful connection is established. A
       list of hosts can be given in a connection string or as
       session creation options, with or without priorities.
var mySession = MySQLX.GetSession(
  "mysqlx://dbuser:password@[" +
  "(address=localhost:33060, priority=90)," +
  "(address=192.1.10.10:33060, priority=100)," +
  "(address=[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33060, priority=30)
" +
  "]"
);

var mySession = MySQLX.GetSession(
  "user=dbuser;" +
  "password=dbpassword;" +
  "server=" +
  "(address=192.1.10.10, priority=90)," +
  "(address=server.example.com, priority=100)," +
  "(address=localhost, priority=30);" +
  "port=33060;"
);


     * X DevAPI: The IN and NOT IN operators have been updated
       to expand the range of operands that can be evaluated by
       the Find(), Modify(), and Remove() methods for
       collections and the Select(), Update(), and Delete()
       methods for tables. This update provides support for
       expressions using the following syntax:
compExpr ["NOT"] "IN" compExpr

       The previous syntax used with IN and NOT IN operators is
       still valid and it takes precedence over the new syntax
       when both are present.

     * X DevAPI: Several new direct-execution methods were added
       to the Collection class that operate at a single document
       level, unlike the other CRUD methods that operate on all
       documents that match a filter. The new methods are:
       ReplaceOne(), AddOrReplaceOne(), GetOne(), and
       RemoveOne().

     * Support for connections using Unix domain socket files
       was extended to include MySQL servers deployed on Linux
       hosts.
       X DevAPI connection example:
"server=/path/to/socket;protocol=unix;user=root;password=mypass;ssl-mode=none"

       Classic MySQL connection example:
"server=/path/to/socket;protocol=unix;user=root;password=mypass"

     * Connections to the MySQL server now can be made using
       accounts that authenticate with the sha256_password
       plugin. For more information, see SHA-256 Pluggable
       Authentication
http://dev.mysql.com/doc/refman/5.7/en/sha256-pluggable-authentication.html
       In addition, a new connection option was added to extend
       authentication support for connections made using the X
       Protocol with either basic or URI connection strings and
       as an anonymous type. The auth connection option enables
       the MYSQL41, PLAIN, or EXTERNAL authentication mechanism
       if supported by the server. For a description of the auth
       option, see Connector/Net Connection-String Options
       Reference
http://dev.mysql.com/doc/connector-net/en/connector-net-connection-options.html

   Bugs Fixed

     * Assemblies within NuGet packages were not fully signed.
       (Bug #26739307)

     * EF Core: Some methods in the DbContext class were not
       supported for use with asynchronous operations. (Bug
       #26448321, Bug #84814)

     * X DevAPI: Priority assignment when connecting to the
       server in client-side failover situations was not
       supported in earlier versions of the connector by design.
       Priority-based failover is now available. (Bug #26198794)

     * EF Core: When attempting to commit a transaction in which
       the FirstOrDefaultAsync method was called, the connector
       returned "System.InvalidOperationException: Connection
       must be valid and open to commit transaction." instead of
       committing the transaction. (Bug #26026972, Bug #86199)

     * X DevAPI: Passing in a value of 0 or lower to the Limit
       method now produces a more relevant error message
       indicating that the argument is out of range. (Bug
       #24384660)

     * X DevAPI: Passing in the NULL value as a parameter to the
       DbDoc.SetValue method resulted in an exception. This fix
       ensures that NULL is accepted for this method. (Bug
       #23542093)

Nuget packages are available at:

https://www.nuget.org/packages/MySql.Data/8.0.9-dmr
https://www.nuget.org/packages/MySql.Web/8.0.9-dmr
https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/8.0.9-dmr
https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore.Design/8.0.9-dmr

Enjoy and thanks for the support!

On Behalf of the MySQL/ORACLE RE Team
Gipson Pulla



Edited 1 time(s). Last edit at 09/28/2017 08:05AM by Gipson Pulla.

Options: ReplyQuote


Subject
Views
Written By
Posted
MySQL Connector/Net 8.0.9-dmr has been released
4231
September 28, 2017 08:03AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.