适用于控制台项目,但不适用于带有MySql Connector的ASP.NET项目EF Core

时间:2017-10-22 07:00:11

标签: mysql entity-framework asp.net-core-mvc .net-core entity-framework-core

我这里有一个奇怪的问题。我正在尝试使用Entity Framework Core访问MySql数据库。

它适用于.NET控制台。但是当相同的代码在网络应用程序上运行时,它说。

fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0]
      An unhandled exception has occurred while executing the request
System.TypeLoadException: Method 'Clone' in type 'MySQL.Data.EntityFrameworkCore.Infraestructure.Internal.MySQLOptionsExtension' from assembly 'MySql.Data.EntityFrameworkCore, Version=8.0.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' does not have an implementation.

   at Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL[TContext]
   at ConsoleApplication.EmployeesContextFactory.Create(String connectionString) in BooksController.cs:line 65

这是我的代码

    var optionsBuilder = new DbContextOptionsBuilder<EmployeesContext>();
    optionsBuilder.UseMySQL(connectionString);

    var context = new EmployeesContext(optionsBuilder.Options);
    context.Database.EnsureCreated();

它给了我方法UseMySql()的例外。相同的确切代码在控制台中工作正常。

同样connectionString, .NET Core version和我能想到的许多约束是相同的。

修改

看到差异ASP.NET项目遵循Nugets enter image description here

控制台应用程序具有以下内容,

enter image description here

两个项目都将目标框架显示为2.0

解决此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

由于当前的MySQL连接器仅支持.NET Core 1,因此您可能无法将其与v2一起使用 您可以在https://github.com/jasonsturges/mysql-dotnet-core

尝试此套餐