1、什么时候需要使用 CodeFirst 迁移
当通过 CodeFirst 模式初始化数据库后,CodeFirst 实体类型发生了改变,比如添加了新的属性。这时就需要将 CodeFirst 实体类的变化同步到数据库结构中。此时,可以使用 CodeFirst 迁移(Migration)功能自动完成此操作这一同步,而不需要重新初始化数据库结构,或手工编写更新数据库结构的 SQL 语句。
2、 EntityFrameworkCodeFirst 示例项目
开发环境:Visual Studio 2019 + Sql server 2017 。
示例项目:下文使用 EntityFrameworkCodeFirst 项目进行举例说明。在之前的示例中,在首次运行 EntityFrameworkCodeFirst 项目时,当 EF CodeFirst 上下文被使用时,已根据上下文中配置好的“数据库初始化器”成员自动创建了数据库(PS:在我的印象里,在早期的 EF CodeFirst,还没有自动迁移功能)。关于该示例的更多信息,请参考:https://blog.youkuaiyun.com/itisauto2008/article/details/117463350
接下来,假如我们为Department实体类型添加一个主管的属性。如下:
/// <summary>
/// 主管
/// </summary>
public virtual Staff Manager { get; set; }
如果直接运行项目,会收到报错:如图。

System.InvalidOperationException:“The model backing the 'Company' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).”
翻译:无效操作:模型所属上下文已发生修改。考虑使用迁移更新数据库。
3、使用迁移的操作步骤
如图,选择 CodeFirtst 项目,进入NuGet控制台\程序包管理控制台,执行几个命令就可以完成迁移操作。

第一步:为项目启用迁移功能
如图,输入此命令并回车执行:Enable-Migrations

执行中和执行完成,都会回显信息。
执行中:
PM> Enable-Migrations
Checking if the context targets an existing database...
执行完成,如果收到以信息:

本文介绍在Entity Framework CodeFirst模式下如何使用迁移功能更新数据库结构,包括启用迁移、创建及执行迁移的具体步骤。
最低0.47元/天 解锁文章
1373

被折叠的 条评论
为什么被折叠?



