【发布时间】:2017-10-22 07:00:10
【问题描述】:
我有一个奇怪的问题。我正在尝试使用 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 和我能想到的很多限制都是一样的。
编辑
控制台应用程序具有以下内容,
两个项目都将其目标框架显示为 2.0
解决这个问题的正确方法是什么?
【问题讨论】:
-
我认为这与版本差异有关。
-
@JohnKennedy 是的。是否可以在 2.0 中使用 .Net core 1.1 nugets?如果可能,它将解决问题。
-
不,这是不可能的。您应该为您正在使用的软件包获取 v2.0。
标签: mysql entity-framework asp.net-core-mvc .net-core entity-framework-core