【发布时间】:2020-11-14 17:21:13
【问题描述】:
我重命名了一些表和一些列。当我运行Add-Migration 命令时,迁移会生成删除旧表和列并添加新名称的代码。这会导致它们包含的数据丢失。
因为我不想丢失数据,所以我想编辑迁移,删除 drop 和 add 命令,并用重命名命令替换它们。
但在我编辑迁移后,如何应用该更改?
如果我运行Update-Database 命令,它将应用于数据库。但不是 Entity Framework 维护的我的模式的快照(存储在 ApplicationDbContextModelSnapshot 中)。
我需要一种方法将我的编辑合并到模型中。我怎样才能做到这一点?
【问题讨论】:
-
您可以编辑迁移文件。
-
非常好。除了不更新快照。请看我的问题。
-
为什么需要更改快照?
-
因为否则,下次我执行
Add-Migration时,它无法识别我的编辑并将架构视为我的更改不存在。它只识别合并到快照中的更改。 -
当您生成了 drop/create 迁移时,它应该已经创建了具有所需结构的快照,您需要将迁移更改为重命名以适应新的快照。
标签: c# .net entity-framework entity-framework-core code-first