开始
有些项目开发时先建立数据库,再用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文件。
![](https://img.haomeiwen.com/i11738664/8105d96561be3f89.png)
问题
powershell版本太低
![](https://img.haomeiwen.com/i11738664/f7e8c353b13d4ecc.png)
进入微软的下载页面:https://www.microsoft.com/zh-CN/download/details.aspx?id=40855
![](https://img.haomeiwen.com/i11738664/ad75153ff3c78fbf.png)
根据自己系统的版本选择安装包
![](https://img.haomeiwen.com/i11738664/0b20e192c51b4b6d.png)
再次执行命令
![](https://img.haomeiwen.com/i11738664/0b26852162998eac.png)
已经生成好了,我们就可以直接使用了
![](https://img.haomeiwen.com/i11738664/04c940d16be8748f.png)
数据迁移
我们把数据库生成完实体之后,当我们项目需要再备份一套数据库,或者进行迁移更新的时候,我们就可以把实体还原成数据库。
不废话
直接操作:
首先还是检查我们要用到的包有没有安装
没有安装还是直接在PM命令管理器里面敲上
Install-Package Microsoft.EntityframeworkCore.SqlServer
Install-Package Microsoft.EntityframeworkCore.Tools
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
首先准备好命令行工具
![](https://img.haomeiwen.com/i11738664/eb287f38e6911df7.png)
![](https://img.haomeiwen.com/i11738664/19e24bf62b4f8242.png)
在命令行中执行:
dotnet ef migrations add InitDB --project ./WebApplication3 -c TicketPlatformContext
看到执行成功
![](https://img.haomeiwen.com/i11738664/a43861a09052cfea.png)
![](https://img.haomeiwen.com/i11738664/3b389db9809db641.png)
生成迁移文件之后,我们还可以通过命令来生成SQL语句,上语句:
![](https://img.haomeiwen.com/i11738664/a856f9053b5757a1.png)
//直接在Console里输出SQL语句
dotnet ef migrations script --project ./WebApplication3 -c TicketPlatformContext
//把SQL输出到指定目录中
dotnet ef migrations script --project ./WebApplication3 -c TicketPlatformContext -o "d:\\2.sql"
![](https://img.haomeiwen.com/i11738664/bdc03c031f89dd4f.png)
直接可以用把语句贴到SQL执行器中,运行生成数据结构
还能在命令行中执行
//执行命令,生成数据库结构
dotnet ef database update --project ./WebApplication3 -c TicketPlatformContext
![](https://img.haomeiwen.com/i11738664/7c063f891cfd9dce.png)
网友评论