EFCore从数据库快速生成实体和DBContext和数据迁移

开始

有些项目开发时先建立数据库,再用codefirst来书写entity和EntityConfiguration,比较耗费功夫。

1、在vs2017中新建个asp.net core的web项目,或者其他项目均可。

2、打开nuget管理器命令行。执行以下3条命令安装相关功能。

Install-Package Microsoft.EntityframeworkCore.SqlServer
Install-Package Microsoft.EntityframeworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

3、执行这一命令。后面是数据库连接字符串

Scaffold-DbContext -Force “Data Source=.; Initial Catalog=test_DEV; Persist Security Info=True; User ID=sa; Password=123;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models/DataModels

4、此时会在model文件夹下会生成数据库中所有的实体和dbcontext文件。

顺利生成

问题

powershell版本太低

powershell版本太低

进入微软的下载页面:https://www.microsoft.com/zh-CN/download/details.aspx?id=40855
图片.png

根据自己系统的版本选择安装包
图片.png

再次执行命令
图片.png

已经生成好了,我们就可以直接使用了

图片.png

数据迁移

我们把数据库生成完实体之后,当我们项目需要再备份一套数据库,或者进行迁移更新的时候,我们就可以把实体还原成数据库。
不废话直接操作:
首先还是检查我们要用到的包有没有安装
没有安装还是直接在PM命令管理器里面敲上

Install-Package Microsoft.EntityframeworkCore.SqlServer
Install-Package Microsoft.EntityframeworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

首先准备好命令行工具


图片.png

图片.png

在命令行中执行:

dotnet ef migrations add InitDB --project ./WebApplication3 -c TicketPlatformContext

看到执行成功


图片.png
图片.png

生成迁移文件之后,我们还可以通过命令来生成SQL语句,上语句:


图片.png
//直接在Console里输出SQL语句
dotnet ef migrations script --project ./WebApplication3 -c TicketPlatformContext
//把SQL输出到指定目录中
dotnet ef migrations script --project ./WebApplication3 -c TicketPlatformContext -o "d:\\2.sql"
图片.png

直接可以用把语句贴到SQL执行器中,运行生成数据结构
还能在命令行中执行

//执行命令,生成数据库结构
dotnet ef database update --project ./WebApplication3 -c TicketPlatformContext
图片.png

你可能感兴趣的:(EFCore从数据库快速生成实体和DBContext和数据迁移)