相当于修改 EFCore 迁移
Equivalent of Modifying EFCore a Migration
Objective
在 Migration.cs
文件中更改某些内容后,我想要像 Modify-Migration 这样的东西。
已经尝试过
有一些是我不小心使用了 注释 但现在我想 删除那个 .
我试图删除这一行:
.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);
});
并对数据库进行此更改,这样我的 table 的 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.
如果您已经有多个迁移文件,只需回滚到上次迁移,然后更新此修改后的迁移文件again.Execute按顺序执行以下命令
1.Update-database -Migration YourLastMigrationName
2.Update-database -Migration YourAboveModifiedMigrationName
参考
https://www.learnentityframeworkcore.com/migrations#reversing-a-migration
Objective
在 Migration.cs
文件中更改某些内容后,我想要像 Modify-Migration 这样的东西。
已经尝试过
有一些是我不小心使用了 注释 但现在我想 删除那个 .
我试图删除这一行:
.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);
});
并对数据库进行此更改,这样我的 table 的 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.
如果您已经有多个迁移文件,只需回滚到上次迁移,然后更新此修改后的迁移文件again.Execute按顺序执行以下命令
1.Update-database -Migration YourLastMigrationName
2.Update-database -Migration YourAboveModifiedMigrationName
参考 https://www.learnentityframeworkcore.com/migrations#reversing-a-migration