Rom*_*kij 2 c# .net-core entity-framework-core-migrations entity-framework-core-2.1 entity-framework-migrations
我正在开发 Web 应用程序并在它附近安装 ef 核心表在数据库中的小型命令行应用程序。最后可以完成调用dbContext.Database.Migrate();,这有效。
现在我想提供unistall选项(使用此应用程序)。
但是如何删除迁移(意味着dotnet ef database update 0从我的代码中调用功能)?
它可能不是一个命令调用(就像dbContext.Database.Migrate();)。但是片段循环遍历迁移程序集中的所有迁移并调用“Downs”。
EF Core 仅公开提供dbContext.Database.Migrate();用于迁移最新版本的扩展方法。它在 EF Core 文档的运行时应用迁移部分中提到,其中还包含以下内容
笔记
此方法建立在
IMigrator服务之上,可用于更高级的场景。使用DbContext.GetService<IMigrator>()访问它。
这为您提供了解决方案,因为IMigrator接口提供了Migrate接受targetMigration与dotnet ef database update或Update-DatabasePM 命令语义相同的可选参数的方法。传递"0"(这是Migration.InitialDatabase常量的值)将执行有问题的操作。
您将需要以下额外的usings:
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
Run Code Online (Sandbox Code Playgroud)
和这样的代码:
var migrator = dbContext.GetService<IMigrator>();
migrator.Migrate(Migration.InitialDatabase);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
627 次 |
| 最近记录: |