Entity Framework Core Migrations

1.Creating a Migration

[Command Line]
dotnet ef migrations add <name of migration>

[Package Manager console]
add-migration <name of migration>

创建迁移时,EF会将模型的当前状态与先前的迁移(如果存在)进行比较,并生成一个文件,该文件包含继承自Microsoft.EntityFrameworkCore.Migrations.Migration的类,该类具有Up和Down方法。 该类的名称与您为迁移指定的名称相同。 文件名本身是迁移的名称,带有时间戳。

Up方法包含C#代码,该代码将自上次迁移以来对模型所做的所有更改应用于数据库的架构。 Down方法撤消这些更改,将数据库恢复到先前迁移的状态。 还将创建或更新ModelSnapshot文件,具体取决于先前是否存在。

2.Removing A Migration

[Command Line]
dotnet ef migrations remove

[Package Manager Console]
remove-migration

您将使用此命令删除最新的迁移。 这将删除为最新迁移生成的类文件,还将ModelSnapshot文件恢复为先前迁移的状态。 如果没有挂起的迁移,将引发异常。 如果要删除已提交的迁移,则必须先撤消迁移。

您应该始终使用命令删除迁移,而不是简单地删除迁移代码文件,否则快照和迁移将彼此不同步。 然后,将来的迁移将基于不正确的模型。 但是,remove命令将识别迁移文件是否已删除,并将相应地还原快照。

如果需要删除在最近一次迁移之前生成的迁移,则必须首先删除所有后续的迁移,然后调整模型,然后创建新迁移以适应更改。

 

Applying A Migration

[Command line]
dotnet ef database update

[Package Manager Console]
update-database

.net core 代码
private void InitializeDatabase(IApplicationBuilder app)
{
    using (var serviceScope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
    {
        serviceScope.ServiceProvider.GetRequiredService<PersistedGrantDbContext>().Database.Migrate();
}
}

除非另有说明,否则将应用所有挂起的迁移。 如果这是第一次迁移

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值