EF Core修改Migration更新数据库表

场景

需要通过EF Migration修改数据库一张表的名称,字段,主键,索引

一般重命名表,生成的ef migration会删除旧表,创建一张新表,如果想不删除旧表,需要修改生成的migration

c# 复制代码
protected override void Up(MigrationBuilder migrationBuilder)
{
			migrationBuilder.RenameTable(
                name: "oldTableName",
                newName: "newTableName");

            migrationBuilder.DropPrimaryKey(
                name: "old_pk",
                table: "newTableName");

            migrationBuilder.AddPrimaryKey("new_pk", "newTableName", "columnName");

            migrationBuilder.RenameIndex(
                name: "old_indexName",
                newName: "new_indexName",
                table: "newTableName");
            
            migrationBuilder.RenameColumn("old_columnName", "newTableName", "new_columnName");

}

protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.RenameTable(
                name: "newTableName",
                newName: "oldTableName");

            migrationBuilder.DropPrimaryKey(
                name: "new_pk",
                table: "oldTableName");

            migrationBuilder.AddPrimaryKey("old_pk", "oldTableName", "coumnName");
            
            migrationBuilder.RenameIndex(
                name: "new_indexName",
                newName: "old_indexName",
                table: "oldTableName");
                
			migrationBuilder.RenameColumn("new_columnName", "oldTableName", "old_columnName");

        }
相关推荐
云祺vinchin几秒前
医疗行业灾备实践:一套方案实现HIS、EMR、PACS系统安全闭环
数据库·安全·数据备份·医疗安全·容灾备份
梦想不只是梦与想4 分钟前
MySQL 中的窗口函数
数据库·mysql·窗口函数
严同学正在努力35 分钟前
Oracle数据技术运维大全(下篇)
运维·数据库·ai·oracle·架构
catino1 小时前
spring-事务@Transactional
java·数据库·spring
数智启示录1 小时前
Apache Doris 4.0.8 数据建模实战(第 2 篇):同一批订单写进三种模型,为什么得到三个答案
大数据·数据库·面试
数智启示录1 小时前
Apache Doris 4.0.8 CDC 正确性(第 9 篇):Flink Checkpoint 一直成功,表里为什么仍是旧数据
大数据·数据库·经验分享·面试·flink
拾光Ծ3 小时前
【MySQL】对表数据的操作:增删查改(CRUD)
android·数据库·sql·mysql
这个DBA有点耶16 小时前
2026年分布式数据库有哪些主流选择?先评估这5个维度再决定
数据库·分布式·dba
这个DBA有点耶19 小时前
从MySQL 5.7到8.0:JSON查询性能差在哪?虚拟列索引vs多值索引怎么选
数据库·mysql·架构