这两天一直在学习ABP VNext框架,整到数据库那一块了。发现问了问组里大佬,要使用EFCore迁移数据库。我寻思这和我自己以前搞得不太一样,以前是要写SQL或者直接GUI建表,现在怎么命令行敲一下就自动生成了,写个博客记录一下。
EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可。
1.获取EF Core
通过NuGet获取要使用的数据库支持。比如:Microsoft SQL Sever
打开NuGet程序包管理器控制台,输入:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
2. 在ABP下建立实体,不赘述,看ABP教程。
3.打开NuGet程序包管理控制台
先输入
Add-Migration xxxxxxxxx
xxxxxxxxx是自己规定的版本号,一般用日期,例如 220315
再输入
Update-Database
迁移成功后,会创建数据库,以及会在项目中生成一个Migrations文件夹,里面时迁移记录。
里面有一个类,包含两个函数 Up 和 Down,Down用于回滚。
更新一波:
这边报错原因是:默认项目选错了
应该写到.Dbmigrations文件下
2022/6/9
关于一些定义的记录:
1.Code first 根据代码来生成相对应的数据库
2.Database first 根据数据库来生成对应的代码
2022/7/6
关于数据库回滚rollback
网上资料写的是 update-database -targetmigration xxxx,报错
找不到与参数名称“TargetMigration”匹配的参数。
1 |
update-database -migration xxxx |
可以确认。 核心2.0使用-migration。 -target已不再适用
对数据库升级的思考:
场景:某张表删除了某个字段,但是现场还是存在这个字段的,同事的建议是不要删,宁愿冗余。保证数据不被丢失。以防以后需要追查历史数据。
2023/8/30
we have 3 steps
1. define the entity and extends Entiry<guid>
2. and then switch to DbContext.cs to define a DbSet
3. the configuration
4. builder.ApplyConfiguration(new yourOwnFuckingConfiguration())