实体框架:移到迁移文件夹后,挂起显式迁移列表中丢失的迁移类

本文关键字:迁移 列表 框架 文件夹 实体 挂起 | 更新日期: 2023-09-27 18:19:22

我继承了一个项目,使用实体框架在一个新的数据库上设置数据库模式。

项目最初有两个不同的文件夹——默认的/Migrations文件夹和另一个文件夹——DbMigration类。我已经将所有这些移动到一个文件夹中,目的是使用单个MigrateDatabaseToLatestVersion以及自定义派生类DbMigrationsConfiguration来同时运行它们。

然而,当我对一个新的(空白)SQL Server数据库运行我的Update-Database命令时,原来不在/migrations文件夹中的迁移根本不显示在实体框架试图运行的"应用显式迁移"列表中。

所以,我的问题是:为什么当我运行Update-Database时,我从其他地方移动到我的/Migrations文件夹中的DbMigration类不包含在挂起的显式迁移列表中?

实体框架:移到迁移文件夹后,挂起显式迁移列表中丢失的迁移类

经过大量的试验和错误后,问题原来是我从其他地方移动到main/Migrations文件夹中的DbMigration类是不同名称空间的成员。

我更改了这些类——手工创建的DbMigration类文件,以及它们相应的自动生成的*. designer .cs文件——与/Migrations文件夹中现有的DbMigration类位于相同的命名空间中。

在这样做之后,移动的迁移类成功地开始被实体框架包括在挂起显式迁移列表中,当我运行Update-Database时应用