创建ASP.NET Core 5.0项目后,通过NuGet包管理器安装Pomelo.EntityFrameworkCore.MySql时会出现警告,表示Pomelo.EntityFrameworkCore.MySql 3.2.4依赖的Microsoft.EntityFrameworkCore.Relational 版本必须>= 3.1.8 && < 5.0.0,而5.0项目中安装的Microsoft.EntityFrameworkCore.Relational必须高于或等于5.0.0(目前是5.0.1),版本冲突导致项目运行时访问MySql数据库会出错。
但是在NuGet包管理器中找到的Pomelo.EntityFrameworkCore.MySql最高版本就是3.2.4,实际上这个库已经发行了5.0.0的alpha版本,而NuGet包管理器不显示alpha版本的包。
可以通过.NET CLI安装:
dotnet add package Pomelo.EntityFrameworkCore.MySql --version 5.0.0-alpha.2
安装成功后,StartUp中注入MySql服务的代码也要稍做更改:
3.2.4版本
var connectionString = Configuration.GetConnectionString("CloudContextConnection");
services.AddDbContext<CloudContext>(options =>
options.UseMySql(connectionString));
5.0.0 alpha版
var connectionString = Configuration.GetConnectionString("CloudContextConnection");
ServerVersion serverVersion = ServerVersion.AutoDetect(connectionString);
services.AddDbContext<CloudContext>(options =>
options.UseMySql(connectionString, serverVersion));