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

Tes*_*ser 4 c# entity-framework-core ef-model-builder entity-framework-migrations

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

为此,我首先在新表中添加新列并完成。

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

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

谢谢你们!

小智 8

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

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

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


Gib*_*bon 7

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

当然请记住,事情是按顺序执行的,因此您需要在添加的列和删除的列之间运行 sql。

同样为了安全起见并保持事物向后兼容,Down()您还应该包含反向的 sql,以便您以后可以随时回滚