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