解决Scaffold-DbContext Build failed的问题

zhaotianff / 2024-10-16 / 原文

以前使用Entity Framework时,Visual Studio直接提供了相应的功能可以从数据库生成数据实体。现在升级到Entity Framework Core后,无法再使用Visual Studio来生成数据实体了,需要调用 Scaffold-DbContext 命令。

 

先简单介绍一下如何使用Scaffold-DbContext为数据库生成实体类型

步骤如下:

1、Nuget安装Entity Framework Core包,根据使用的数据库不同,名称会有所差异。如MySql的包名叫MySql.EntityFrameworkCore

2、Nuget安装 Microsoft.EntityFrameworkCore.Design,Microsoft.EntityFrameworkCore.Relational和Microsoft.EntityFrameworkCore.Tools三个包

3、打开视图-》其它窗口-》程序包管理器控制台

 

 4、选中要生成数据实体的项目

 

5、执行以下指令

1 Scaffold-DbContext "Server=127.0.0.1; Port=3306; Database=my_db; Uid=root; Pwd=1" MySql.EntityFrameworkCore -OutputDir Models

-OutputDir 代表输出 目录。

 

Scaffold-DbContext的详细用法可以参考以下链接:

https://learn.microsoft.com/zh-cn/ef/core/cli/powershell#scaffold-dbcontext

https://learn.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding/?tabs=vs

 

执行成功会显示如下内容

 

Build Failed

最近有一段时间没搞这个项目了,想从数据库更新一下数据实体,发现一直报这个错。

 

尝试了如下办法:

1、设置当前项目时需要生成数据实体的项目

2、确认Nuget包已经安装

3、在解决方案管理器中将需要生成数据实体的项目设成默认

 

在使用了这三个办法后,问题依旧,于是我在控件台中输入了 dir,发现当前所在路径并非在项目路径

 

最终的解决办法

输入 cd 项目路径,将当前路径切换到项目路径下问题就解决了

1 cd myproject