c# - 相当于修改 EFCore 迁移
问题描述
客观的
在更改文件中的某些内容后,我想要像 Modify-Migration 这样的东西Migration.cs
。
已经尝试过
有些时候我不小心使用了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.Update-database -Migration YourLastMigrationName
2.Update-database -Migration YourAboveModifiedMigrationName
参考 https://www.learnentityframeworkcore.com/migrations#reversing-a-migration
推荐阅读
- reactjs - Material UI Chip 数组如何像 Angular Chip Input 一样使用?
- java - 为什么我的程序没有打印出想要的结果?
- php - 无法生成有效的 JWT 以使用 Google Functions 进行身份验证 - PHP
- python - Django 中的 Npm 包不适用于 Heroku
- sql-update - 你能在 SnowFlake 的同一张表上并行更新不同的行吗
- javascript - Highcharts 系列条形图 - 多个系列,相同的 xAxis
- html - 背景视频下新 Div 中的文本
- javascript - 反应本机:未处理的承诺拒绝:TypeError:未定义不是对象
- r - 如何在 R 中使用 glm 获得“二项式比例的 95%CI”
- laravel - 带有参数的身份验证中间件 - Laravel