You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core 7.0.8/6.0.19下Visual Basic项目scaffold-dbcontext报错求助

在Visual Basic 2022项目中解决Scaffold-DbContext的IModelCodeGenerator不支持VB问题

问题场景

在Visual Basic 2022项目中执行Scaffold-DbContext命令时,触发以下错误:

内置服务IModelCodeGenerator不支持项目语言'VB'。您可以尝试寻找支持该语言的额外NuGet包;将DbContext类型移至该项目引用的C#类库中,或手动实现并注册该编程语言的设计时服务。

已尝试使用EF Core 7.0.8版本,以及6.0.19版本的Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Design、Microsoft.EntityFrameworkCore.Tools包,但问题未解决。

可行解决方案

1. 安装VB专属的EF Core代码生成包

EF Core从5.x版本开始,Visual Basic的代码生成支持需要单独安装Microsoft.EntityFrameworkCore.VisualBasic包,且必须保证该包与其他EF Core相关包的版本完全一致。

  • 使用Package Manager Console安装(对应6.0.19版本):
    Install-Package Microsoft.EntityFrameworkCore.VisualBasic -Version 6.0.19
    
  • 使用.NET CLI安装:
    dotnet add package Microsoft.EntityFrameworkCore.VisualBasic --version 6.0.19
    

安装完成后重新执行Scaffold-DbContext命令即可。

2. 强制统一所有EF Core包版本

检查项目中所有EF Core相关包的版本,确保Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Design、Microsoft.EntityFrameworkCore.Tools、Microsoft.EntityFrameworkCore.VisualBasic的版本号完全相同,混合不同版本会引发兼容性问题。

3. 改用C#类库中转方案(若上述方法无效)

如果VB专属包仍无法解决问题,可通过C#类库生成代码后在VB项目中引用:

  • 新建一个.NET类库(C#)项目;
  • 在该类库中安装对应版本的EF Core包(包括Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Design、Microsoft.EntityFrameworkCore.Tools);
  • 在类库项目中执行Scaffold-DbContext命令,生成DbContext和实体类;
  • 在你的VB项目中添加对该C#类库的引用,直接使用生成的上下文和实体类。

内容的提问来源于stack exchange,提问作者user1806273

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:55:13