【EntityFramework CodeFirst】使用迁移(Migration)示例

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

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...

执行完成,如果收到以信息:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雕技小虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值