.NET Core Web API项目MySQL脚手架搭建失败,遇NU1107版本冲突
解决Pomelo EF Core脚手架版本冲突问题
问题根源
你遇到的NU1107错误核心是EF Core与Pomelo版本不兼容:
Microsoft.EntityFrameworkCore.Design v7.0.1依赖的是Microsoft.EntityFrameworkCore.Relational >=7.0.1Pomelo.EntityFrameworkCore.MySql v6.0.2依赖的是Microsoft.EntityFrameworkCore.Relational >=6.0.7 && <7.0.0
两者的版本范围完全冲突,NuGet无法自动调和,单独手动添加Relational包也解决不了本质问题。
解决方案:统一版本号
Pomelo.EntityFrameworkCore.MySql的版本必须和Microsoft.EntityFrameworkCore的主版本完全一致(比如6.x对应6.x,7.x对应7.x),二选一即可:
方案1:降级EF Core到6.x版本
- 卸载当前的
Microsoft.EntityFrameworkCore.Design v7.0.1:dotnet remove package Microsoft.EntityFrameworkCore.Design - 安装6.x系列的稳定版(和Pomelo 6.0.2匹配):
dotnet add package Microsoft.EntityFrameworkCore.Design --version 6.0.25 - 重新执行你的脚手架命令:
dotnet ef dbcontext scaffold Name=NorthwindDB Pomelo.EntityFrameworkCore.MySql --output-dir Models --context-dir Data --namespace Northwind.Models --context-namespace Northwind.Data --context NorthwindContext -f --no-onconfiguring
方案2:升级Pomelo到7.x版本
- 卸载当前的
Pomelo.EntityFrameworkCore.MySql v6.0.2:dotnet remove package Pomelo.EntityFrameworkCore.MySql - 安装与EF Core 7.0.1兼容的Pomelo版本(比如7.0.2):
dotnet add package Pomelo.EntityFrameworkCore.MySql --version 7.0.2 - 重新执行脚手架命令即可。
关于Pomelo脚手架的可用性
当然有大量开发者成功用Pomelo完成过EF Core脚手架搭建,只要保证EF Core和Pomelo的主版本一致,就能顺利生成实体类和DbContext。
内容的提问来源于stack exchange,提问作者Jana Andropov
相关产品推荐
相关产品推荐

