EF数据库迁移工具migration的使用

1、在DbContext类所在项目中添加 EntityFramework引用,可使用nuget添加

 

2、打开程序包管理器控制台(如果看不到程序包管理器控制台,在菜单栏中“其他窗口”中可找到),默认项目要选择你的DbContext类所在项目,然后输入命令,启用数据迁移

enable-migrations

运行后的结果:

 

A、 启用迁移之前还没有创建数据库

a)       在项目根目录下创建了一个Migrations文件夹

b)       在Migrations文件夹下新建了一个Configuration.cs文件。

我们可以通过修改Configuration.cs来对Migration做一些配置(比如在Seed方法中加入一些预定义数据(角色、用户等)等,以在启动应用程序时自动将这些预定义的数据添加到数据库中)

u.Name == adminUser.Name) == null) { context.Users.Add(adminUser); context.SaveChanges(); } } " v:shapes="文本框_x0020_2">

B、 如果启用数据迁移之前已经创建了一个数据库

如果启用数据迁移之前已经自动创建了一个数据库,则会在Migrations文件夹下添加Configuration.cs、yyyyMMddHHmmsss_InitialCreate.cs两个文件,InitialCreate文件包含了现有数据库架构的创建和删除命令

3、在修改了实体数据后,输入以下命令,更新数据库

add-migration XXX

XXX 为迁移指定的名称 比如:InitialCreate 或 AddName

它会生成一个yyyyMMddHHmmsss_XXX.cs的文件

该命令将根据自创建上次迁移以来对模型所做的更改,为下一次迁移搭建基架

在此时可以对生成的代码做一些修改,比如添加唯一索引,不可空列等

 

update-database [-verbose] [-targetmigration:XXX]

将所有挂起的迁移应用于数据库

update-database:直接应用于数据库

-verbose标记,用于以便您能够看见迁移所运行的 SQL。

-targetmigration 可对数据库升级或降级到指定版本之后的状态,若要降级到空数据库,可使用 update-database -targetmigration: $InitialDatabase 命令。

 

posted @ 2022-02-17 14:47  FiberHomer  阅读(360)  评论(0编辑  收藏  举报