迁移是如何应用于数据库的?

How Migrations are applied to the database?

我想了解迁移在 entity framework 中的工作原理,ef 如何知道应将哪个迁移应用于数据库? 我看到在每个数据库中都有一个 __MigrationHistory table 包含迁移列表。

在将特定迁移应用到数据库之前,ef 是否比较 table 中的迁移和项目中的迁移?

已应用迁移的历史列在 __EFMigrationsHistory table 中。当 EF 将代码中的迁移列表与数据库中应用的迁移列表进行比较时。因此,它会尝试按照创建时间的顺序将新迁移应用到数据库。

此外,EF Core 会忽略数据库中列出并从代码中删除的项目。

通过将迁移保留在您的代码中,您可以按照它们已应用于数据库并在 __EFMigrationsHistory table.[=12 中列出的顺序逐步撤消方案=]