模型更改时如何保存数据?

时间:2019-01-07 20:24:21

标签: entity-framework-6

我正在学习实体框架。我正在阅读一些有关初始化以及如何进行初始化的教程

  • CreateDatabaseIfNotExists
  • DropCreateDatabaseIfModelChanges
  • DropCreateDatabaseAlways
  • 自定义数据库初始化器

可供选择。

这让我想知道,当他们想要更改架构但想要保留自己的数据时,该做什么?

我只是直接使用sql,我可以制作临时表,移走内容,用新的columnns重新创建表,将内容移回等,

当您的班级和/或其关系在EF中发生变化时,您会怎么做?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找EF迁移: https://docs.microsoft.com/en-us/ef/ef6/modeling/code-first/migrations/

对于每个架构更改,您都会创建一个迁移,您可以在其中添加或删除表或列,甚至可以运行自定义脚本。

每个迁移都有一个Up方法,如果您运行迁移将应用这些方法,而如果出于某种原因要回滚到上一个迁移,则将使用一个Down方法。

使用Update-Database可以应用所有迁移,使用Update-Database –TargetMigration:{nameOfMigration}可以迁移到特定版本。