修改生成的代码首次迁移后迁移历史记录是否不准确?

时间:2014-04-23 02:58:13

标签: asp.net-mvc entity-framework code-first ef-migrations

让我们说我生成的代码第一次迁移,如下所示:

CreateTable(
    "dbo.Genders",
    c => new
        {
            ID = c.Int(nullable: false),
            Name = c.String(nullable: false),
        })
    .PrimaryKey(t => t.ID);

CreateTable(
    "dbo.Ratings",
    c => new
        {
            Value = c.Int(nullable: false),
        })
    .PrimaryKey(t => t.Value);

AddColumn("dbo.Reviews", "RatingValue", c => c.Int());
AddColumn("dbo.AspNetUsers", "GenderID", c => c.Int());
CreateIndex("dbo.AspNetUsers", "GenderID");
CreateIndex("dbo.Reviews", "RatingValue");
AddForeignKey("dbo.AspNetUsers", "GenderID", "dbo.Genders", "ID");
AddForeignKey("dbo.Reviews", "RatingValue", "dbo.Ratings", "Value");

我创建了2个表,并将其他表中的外键添加到这些新表中。简单的东西。现在,让我们说在使用Add-Migration生成此迁移后,我删除了添加外键的代码来获取此内容:

CreateTable(
    "dbo.Genders",
    c => new
        {
            ID = c.Int(nullable: false),
            Name = c.String(nullable: false),
        })
    .PrimaryKey(t => t.ID);

CreateTable(
    "dbo.Ratings",
    c => new
        {
            Value = c.Int(nullable: false),
        })
    .PrimaryKey(t => t.Value);

当我通过Update-Database运行时,它工作正常,但后来我注意到迁移历史记录保留了原始生成的脚本而不是我编辑的脚本。我可以通过再次执行Add-Migration并确认生成的迁移是空的来确认这一点。

这是为什么?我错了吗?如果我做了一堆模型更改怎么办,但是我想将迁移分解成单独的块?我怎么能这样做?

0 个答案:

没有答案