EF Core迁移时为新增字段添加默认值

使用时EF Core有时会添加字段,如果表中已经存在一些数据了,可以通过修改迁移脚本使添加的新字段有默认值

有两种方式:

都是修改迁移脚本中的Up函数

1、使用defaultValue字段

protected override void Up(MigrationBuilder migrationBuilder)
{
    migrationBuilder.AddColumn(
        name: "Remark",
        table: "User",
        type: "varchar(64)",
        maxLength: 64,
        defaultValue:"备注",
        nullable: true,
        .Annotation("MySql:CharSet", "utf8mb4");
}

 2、使用defaultValueSql字段

使用defaultValueSql字段时,可以写上复杂的表达式,比如这里是引用UseName列的值

详细说明可以查看官方文档(我这里使用的是Mysql数据库):MySQL :: MySQL 8.4 Reference Manual :: 13.6 Data Type Default Values

protected override void Up(MigrationBuilder migrationBuilder)
{
    migrationBuilder.AddColumn(
        name: "RealName",
        table: "User",
        type: "varchar(64)",
        maxLength: 64,
        defaultValueSql:"(UserName)",
        nullable: true,
        .Annotation("MySql:CharSet", "utf8mb4");

}

你可能感兴趣的:(android)