- 在 Visual Studio 的“工具”菜单下,打开 NuGet 包管理器;
- 确认 Microsoft.VisualStudio.Web.CodeGeneration.Design 包的版本,如果版本不是最新的或者少于 5.x.x,升级此包;
- 在控制台中使用以下命令安装最新的控制器生成器包:
Install-Package Microsoft.VisualStudio.Web.CodeGenerators.Mvc -Version 5.0.0-preview.7.20364.11
- 确认项目中的 Microsoft.EntityFrameworkCore.SqlServer 和 Microsoft.EntityFrameworkCore.Tools 包的版本,如果不是最新的或者小于 5.x.x,升级这些包;
- 使用以下命令安装最新的 EF 工具包:
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 5.0.6
- 如果必须要改变控制器名称或者其他参数,可以在控制器生成器命令中指定。例如,如果要指定控制器名称为“SampleController”,则在控制台中使用以下命令:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context MyDatabaseContext -Force
MvcControllerGenerator MyDatabaseContext DbContext SampleController
- 如果以上方法仍然无法解决问题,可以删除项目中的 bin 和 obj 文件夹,然后从头开始尝试运行控制器生成命令。