解决Scaffold-DbContext Build failed的问题
以前使用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
life runs on code
作者: zhaotianff
转载请注明出处