如何在同一.cs文件上重新创建初始迁移

时间:2016-06-08 04:55:01

标签: entity-framework entity-framework-6

在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文件

  

Add-Migration InitialCreate

我会提供你的帮助

4 个答案:

答案 0 :(得分:10)

在这里你可以看到我是如何解决这个问题的。

小心这种方法,因为在我的场景中我仍处于开发阶段,因此我不需要保留数据库和数据。

如果要覆盖当前的“InitialCreate”文件并重新生成数据库,请按以下步骤操作:

1)在软件包管理器控制台中运行:

  

添加迁移InitialCreate -force

2)删除物理数据库(使用SSMS,T-SQL或您喜欢的)

3)在软件包管理器控制台中运行:

  

Update-Database -TargetMigration:0 | update-database -force | update-database -force

如果您不关心当前的“InitialCreate”文件本身,想要创建一个新文件并重新生成数据库,请按照以下步骤操作:

1)删除当前的“InitialCreate”.cs文件

3)在软件包管理器控制台中运行:

  

Add-Migration InitialCreate

4)删除物理数据库(使用SSMS,T-SQL或您喜欢的)

4)在软件包管理器控制台中运行:

  

Update-Database -TargetMigration:0 | update-database -force | update-database -force

答案 1 :(得分:1)

我的项目已解决。
在Package Manager控制台中运行:

  1. 拖放数据库
  2. 删除迁移
  3. 添加迁移InitialCreate
  4. 更新数据库

答案 2 :(得分:1)

只需从“迁移”文件夹中删除初始迁移文件,然后重试。

答案 3 :(得分:0)

尝试通过在Package Manager控制台中编写Update-Database来更新数据库。