asp.net core 1.1 升级后,操作mysql出错的解决办法。

时间:2022-05-24 04:17:25

遇到问题

  core的版本从1.0升级到1.1,操作mysql数据库,查询数据时遇到MissingMethodException问题,更新、插入操作没有问题。

如果你也遇到这个问题,请参照以下步骤进行升级操作。

操作步骤及内容

  • 如果你的项目已经引用过以下几部分内容,请依次升级内容:
PM> Update-Package Microsoft.EntityFrameworkCore
PM> Update-Package Microsoft.EntityFrameworkCore.SqlServer
PM> Update-Package Microsoft.EntityFrameworkCore.Relational
PM> Update-Package Microsoft.EntityFrameworkCore.Tools -Pre
  • 如果你还没有安装过,请使用安装语句
PM> Install-Package Microsoft.EntityFrameworkCore
PM> Install-Package Microsoft.EntityFrameworkCore.SqlServer
PM> Install-Package Microsoft.EntityFrameworkCore.Relational
PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Pre
  • 安装完成后,如果你引用的mysql扩展是以下这个版本(或者小于该版本。)依然会无法完成查询操作。
 "MySql.Data.EntityFrameworkCore": "7.0.6-IR31"
  • 移除该引用,并使用NUGET安装SapientGuardian.EntityFrameworkCore.MySql
PM> Install-Package SapientGuardian.EntityFrameworkCore.MySql
  • 如果你使用的IDE是vs Code,在project.json中增加下边的依赖
"SapientGuardian.EntityFrameworkCore.MySql": "7.1.14"
  • 然后在CLI 中 执行 dotnet restore
  • 接着你需要在startup.cs 添加引用内容。
using MySQL.Data.Entity.Extensions;

好了,其他代码没有什么改变。再试一下你会发现,你的系统可以正常工作了。

参考文档

1、Announcing Entity Framework Core 1.1  Rowan Miller