Entity framework EF6代码首先更新数据库而不删除数据

Entity framework EF6代码首先更新数据库而不删除数据,entity-framework,ef-code-first,entity-framework-migrations,Entity Framework,Ef Code First,Entity Framework Migrations,我试图用我在实体模型中所做的更改(一些额外的表列)来更新数据库,但我不想删除并重新创建数据库,因为它将删除我的所有测试数据。以前我已经这样做了,并使用Seed方法创建了一些基本数据,但现在我有很多数据,我宁愿保留它们 我已尝试运行更新数据库,但出现错误: There is already an object named 'ActivityNoteLines' in the database. 查看迁移脚本,我可以看到它正在尝试创建表ActivityNoteLines。很明显,我不想这样。然后,

我试图用我在实体模型中所做的更改(一些额外的表列)来更新数据库,但我不想删除并重新创建数据库,因为它将删除我的所有测试数据。以前我已经这样做了,并使用Seed方法创建了一些基本数据,但现在我有很多数据,我宁愿保留它们

我已尝试运行更新数据库,但出现错误:

There is already an object named 'ActivityNoteLines' in the database.
查看迁移脚本,我可以看到它正在尝试创建表ActivityNoteLines。很明显,我不想这样。然后,我使用

Add-Migration InitialCreate –IgnoreChanges
但现在当我运行更新数据库时,它认为没有任何更改


我确信我想做什么是可能的,但我似乎无法让它发挥作用。如果我必须删除并重新创建数据库,我会这样做,但我想知道是否有人成功更新并保留了数据。

您遇到的问题是,您在Migrations文件夹中的创建脚本想要创建所有表。运行更新时,它会查看表dbo.MigrationHistory以查看哪些迁移脚本已经运行。您的数据库在表中没有create,因此Update正在尝试运行它


您可以尝试手动将条目添加到表中,也可以编辑创建脚本并删除up和down方法的内容。然后,当您运行update时,它将运行创建脚本,该脚本不会执行任何操作,并将条目写入MigrationHistory表。

您使用的是什么数据库初始值设定项?@Thewads-我使用的是CreateDatabaseIfNotExists,以前使用过DropCreateDatabaseIfModelChanges,这显然是在删除我的所有数据。如果您使用的是代码优先迁移,请查看使用
MigrateDatabaseToLatestVersion
是否可以从迁移中删除您不需要的所有内容?@dismissible-我可能可以,但我认为可能有更好的方法