根据实体框架迁移中其他列的值添加具有值的列

时间:2019-05-22 10:30:28

标签: entity-framework migration ef-code-first

这是我的ef迁移代码,

   protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.AddColumn<DateTime>(
            name: "ColumnNew",
            table: "MyTableName",
            nullable: true);
    }

因此,我的新列名为ColumnNew。我已经有ColumnOneColumnTwo

我的问题是,如果ColumnOne的值等于1,我想将ColumnTwo的值复制到ColumnNew
我可以在迁移文件中这样做吗?

1 个答案:

答案 0 :(得分:1)

创建新列后,您必须添加一条更新语句:

protected override void Up(MigrationBuilder migrationBuilder)
{
    migrationBuilder.AddColumn<DateTime>(
        name: "ColumnNew",
        table: "MyTableName",
        nullable: true);

    migrationBuilder.Sql("UPDATE MyTableName SET ColumnNew = ColumnTwo WHERE ColumnOne = 1");
}