.NET中 EF Core数据迁移很简单

在 EF Core的Code First开发模式下,一般是写好实体然后再更新到数据库;在开发初期也可以可以先建好数据再写实体,这种情况下如果在后期开发增加或修改字段的时候难免会有表中的字段和实体不同步的情况,这个时候就需要使用EF的数据迁移功能了,本文介绍如何使用数据迁移。.

1、准备Code First项目

    我们先新创建一个空API网站,并添加一个human的实体类,再添加一个上下文的类,最后在Startup.cs文件中注册。并且需要引用EF tool包。如下

.NET中 EF Core数据迁移很简单

2、生成和执行迁移

打开VS,工具>库程序包管理器>程序包管理器控制台。
a、Add-Migration
首先输入Add-Migration firstMigration 按回车键,这时候就添加了一个firstMigration 的迁移,并且项目下多了个Migrations文件夹,文件夹下有两个文件,一个文件名是ModelSnapshot.cs,它相当于是个快照,我们不能手动去修改,作用就是EFcore通过它去追踪我们Model的一个状态,比如说:我们又加了一个字段,EFcore就会读取这个快照,看当前所追踪的快照是什么,然后跟他以现在大model进行比较,如果有差异就知道更新什么了;另一个文件是你迁移名称加日期,这个文件主要记录要迁移的实体,比如增加的实体,修改的实体等。
Add-Migration 后可以指定上下文名称和项目名称,尤其是多个上下文的情况下必须指定,如下:
add-migration datas2020121501 -context TestDbContext
a、update-database
这个命令就是更新数据库架构,把带日期迁移名称的cs文件中的实体变更信息添加到数据库。这个也可以指定上下文名称和项目名称,如下:
update-database -context TestDbContext
这样就迁移完成,很简单,如下图

.NET中 EF Core数据迁移很简单

迁移命令还有一些参数,具体请访问官方网站:https://docs.microsoft.com/

遇到的坑:在多个项目的情况下,如果有一个项目报错会迁移不成功。

源码链接:https://pan.baidu.com/s/1yxLsgX5fIEGyyom8SpkWbQ?pwd=j9t7

提取码:j9t7