重命名列,并通过 EF Code First 中的迁移更改列类型



我是 Asp 的新手。Net MVC 5 体系结构,对实体框架代码优先迁移也知之甚少。这是我通过迁移创建的表的快照,由于某些原因,我只想将发布日期列重命名为发布日期,并且还想将流派 id 的列类型从字节更改为 int。是否可以通过迁移或任何其他替代方案来做到这一点?

捕捉我的表的迁移

迁移代码:

 namespace Vidly.Migrations
    {
        using System;
        using System.Data.Entity.Migrations;
        public partial class AddPropAndAnnotationsToMovie : DbMigration
        {
            public override void Up()
            {
                CreateTable(
                "dbo.Movies",
                c => new
                                    {
                    Id = c.Int(nullable: false, identity: true),
                    Name = c.String(nullable: false, maxLength: 255),
                    GenreId = c.Byte(nullable: false),
                    DateAdded = c.DateTime(nullable: false),
                    ReleaseDate = c.DateTime(nullable: false),
                    NumberInStock = c.Byte(nullable: false),
                        })
                    .PrimaryKey(t => t.Id)
                    .ForeignKey("dbo.Genres", t => t.GenreId, cascadeDelete: true)
                    .Index(t => t.GenreId);
                CreateTable(
                "dbo.Genres",
                c => new
                                    {
                    Id = c.Byte(nullable: false),
                    Name = c.String(nullable: false, maxLength: 255),
                        })
                    .PrimaryKey(t => t.Id);
            }
            public override void Down()
            {
                DropForeignKey("dbo.Movies", "GenreId", "dbo.Genres");
                DropIndex("dbo.Movies", new[] { "GenreId" });
                DropTable("dbo.Genres");
                DropTable("dbo.Movies");
            }
        }
    }

可以反向迁移、编辑 C# 实体并创建新的迁移。用:

`Update-database -TargetMigration:0` 

还原所有迁移,或者,

`Update-database -TargetMigration:"name of migration file"`

以还原到特定迁移。删除不需要的迁移文件。

然后在更改代码Add-migration migration-name运行以创建新的迁移文件。

第三个选项是重命名代码中的字段,然后使用"添加迁移"。

避免编辑迁移文件。更改代码,运行迁移,更新数据库。

参见

相关内容

最新更新