我继承了一个项目,该项目设置为使用Entity Framework在新数据库上设置数据库模式。
项目最初有两个不同的文件夹 - 默认/ Migrations文件夹,另一个文件夹 - 带有DbMigration
类。我已将所有这些内容移动到一个文件夹中,目的是使用单个MigrateDatabaseToLatestVersion
和自定义派生类DbMigrationsConfiguration
同时将它们一起运行。
但是,当我针对新的(空白)SQL Server数据库运行Update-Database
命令时,原来不在/ Migrations文件夹中的迁移根本不会显示在“明确应用”列表中迁移“实体框架试图运行。
所以,我的问题:为什么我运行DbMigration
时运行的挂起显式迁移列表中包含的Update-Database
类从我的其他位置迁移到my / Migrations文件夹?
答案 0 :(得分:2)
经过大量的试验和错误后,问题变成了我从其他地方移动到main / Migrations文件夹的DbMigration
类是不同命名空间的成员。
我将这些类(手动创建的DbMigration
类文件及其相应的自动生成的* .Designer.cs文件)更改为与现有DbMigration
类相同的命名空间。 / Migrations文件夹。
执行此操作后,已移动的迁移类成功开始被Entity Framework包含在我运行Update-Database
时要应用的待定显式迁移列表中。