与 EF Code First 中常见的一样,我生成了一个“初始创建”迁移文件,其中位于我的数据库的过时模型(我正在开发应用程序,因此模型仍在更改)。现在我在代码中定义了一个“新模型”,而不是为此创建新的迁移,我只想更新现有的文件,因为它仍然是初始创建的迁移。
我尝试过使用这个但没有任何运气
更新数据库-targetmigration $initialcreate
它回来了
Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.
You can use the Add-Migration command to write the pending model changes to a code-based migration.
我也尝试过这个,但它总是创建一个新的 .cs 文件
添加-迁移InitialCreate
我会感谢你的帮助
在这里你可以看到我是如何解决这个问题的。
要小心这种方法,因为在我的场景中,我仍处于开发阶段,所以我不需要保留数据库或数据。
如果您想覆盖当前的“InitialCreate”文件并重新生成数据库,请按照以下步骤操作:
1)在包管理器控制台中运行:
添加-迁移InitialCreate-force
2)删除物理数据库(使用SSMS、T-SQL或您喜欢的)
3)在包管理器控制台中运行:
更新数据库-TargetMigration:0 |更新数据库-force |更新数据库-force
如果您不关心当前的“InitialCreate”文件本身,想要创建一个新文件并重新生成数据库,请按照以下步骤操作:
1) 删除当前的“InitialCreate”.cs 文件
3)在包管理器控制台中运行:
添加-迁移InitialCreate
4)删除物理数据库(使用SSMS、T-SQL或您喜欢的)
4)在包管理器控制台中运行:
更新数据库-TargetMigration:0 |更新数据库-force |更新数据库-force
我的项目已经解决了。
在包管理器控制台中运行:
只需从“Migrations”文件夹中删除初始迁移文件,然后重试。
尝试通过在包管理器控制台中写入
Update-Database
来更新数据库。
这对我有用:
Add-Migration Zero -project <Project> -StartUpProject <Project>
您的目标程序集/项目在哪里
用途:
get-help add-migration
寻求更多帮助。