实体框架:移到迁移文件夹后,挂起显式迁移列表中丢失的迁移类
本文关键字:迁移 列表 框架 文件夹 实体 挂起 | 更新日期: 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
时应用