等效于修改EFCore迁移

时间:2019-10-02 11:45:14

标签: c# sql-server asp.net-core entity-framework-core ef-migrations

客观

在更改Migration.cs文件中的内容之后,我想要类似Modify-Migration的内容。

已经尝试

有些是我不小心使用 Annotation ,但现在我想删除
我试图删除此行: .Annotation("SqlServer:ValueGenerationStrategy",SqlServerValueGenerationStrategy.IdentityColumn),从这里

migrationBuilder.CreateTable(
    name: "LateFine",
    columns: table => new
    {
        StudentId = table.Column<int>(nullable: false)
        .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
        FineAmount = table.Column<int>(nullable: false)
    },
    constraints: table =>
    {
        table.PrimaryKey("PK_LateFine", x => x.StudentId);
    });

对数据库进行此更改,以便表的SQL_Server设计如下所示:

Identity Specification: No

我已经知道,使用DatabaseGenerated(DatabaseGeneratedOption.None)首先不会产生该注释。

这是先前的代码

class LateFine
{
    [Key]
    public int StudentId { get; set; }
    public int FineAmount { get; set; }
}

这是我当前的修改

class LateFine
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int StudentId { get; set; }
    public int FineAmount { get; set; }
}

在构建解决方案之后,使用Update-Database命令,我得到了:No migrations were applied. The database is already up to date.

1 个答案:

答案 0 :(得分:0)

如果已经有多个迁移文件,只需回滚到上一个迁移,然后再次更新此修改后的迁移文件。按顺序执行以下命令

1.Update-database -Migration YourLastMigrationName
2.Update-database -Migration YourAboveModifiedMigrationName

请参阅 https://www.learnentityframeworkcore.com/migrations#reversing-a-migration