Entity framework 代码首次迁移出现空白

Entity framework code first migration coming up blank

我正在使用 entity framework 附加到现有数据库,我将在其中添加更多 table。这里有人说这是不可能的,我需要在新数据库中将新的 table 分开。这是那个问题:

Do not create existing table during Migration

我做了更多调查并在 MSDN 上找到了这个:

https://msdn.microsoft.com/en-us/data/dn579398.aspx

据此我应该 运行 像这样的初始迁移:

add-migration initial -ignorechanges

所以我这样做了,那应该是查看数据库并将其匹配。更新数据库后,我应该添加另一个没有 -ignorechanges 的迁移。当我进行第二次迁移时,我得到这个:

namespace PTEManager.Domain.Migrations
{
    using System;
    using System.Data.Entity.Migrations;

    public partial class second : DbMigration
    {
        public override void Up()
        {
        }

        public override void Down()
        {
        }
    }
}

所以它不会尝试添加我需要的 2 个新 table 和关系。它是空白的。我试过从数据库中删除 _migrationhistory table 并重新开始,但仍然没有。我错过了什么?

您可以尝试添加正常迁移并修改 Up/Down 方法,以便它们仅包含 2 个新表。

听起来您正在添加第二次迁移,但没有进行任何更改。你需要做的是:

  • DBSet<ModelName> 属性添加到所有现有的上下文中 表。
  • 使用 -ignorechanges 创建初始迁移
  • DBSet<ModelName> 属性添加到所有新表的上下文中。
  • 正常创建第二个迁移。

第二次迁移应包含仅创建所需的新表、关系等的代码。无论您是在迁移之间更新数据库还是在最后更新一次都没有关系。