EF Core 在迁移时将列数据从 table 移动到另一个 (UP)

EF Core move column data from table to another while migration (UP)

我通过从 table 中删除一列到另一列来更新我的数据模型,但我在该列中有数据

为此,我首先在新 table 中添加了新列,然后就完成了。

现在我想列数据从旧的table迁移到新的,我正在考虑用 Up(MigrationBuilder migrationBuilder) 方法做,但我不知道正确的方法。

所以,我想问问是否有人知道我可以从哪里开始。

谢谢大家!

在迁移的 Up() 方法中,您可以使用 migrationBuilder.Sql() 函数编写自定义 SQL - 这通常是我处理从一列迁移到另一个或在这种情况下跨表。

当然要记住,事情是按顺序执行的,所以你需要在添加的列和删除的列之间有 sql 到 运行。

同样为了安全起见并保持事物在 Down() 方面的向后兼容,您还应该包括执行相反操作的 sql 以便您以后可以随时回滚

例如,我们有 table A 和 table B。

在我的项目中,我遵循三个步骤:

  1. 创建迁移以将新列添加到 table B(在 Up() 部分)。在 Down() 部分,我添加了代码以在 table B.
  2. 中删除此列
  3. 创建迁移以将数据从 table A 传输到 table B(在 Up() 部分)。在 Down() 部分,我添加代码以将数据从 table B 传输到 table A.
  4. 创建迁移以删除 table A 中的列(在 Up() 部分)。在 Down() 部分,我添加代码以创建列到 table A.