我正在使用实体框架附加到现有数据库,我将在其中添加更多表。有人说这是不可能的,我需要在新数据库中将新表分开。这是一个问题:
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个新表和关系。它空白了。我已经尝试从数据库中删除_migrationhistory表并重新开始但仍然没有。我错过了什么?
答案 0 :(得分:2)
听起来您正在添加第二次迁移而不进行任何更改。你需要做的是:
DBSet<ModelName>
属性
表。 -ignorechanges
DBSet<ModelName>
属性添加到所有新表的上下文中。然后,第二次迁移应包含仅创建所需的新表,关系等的代码。无论是在迁移之间更新数据库还是在结束时只更新一次都无关紧要。
答案 1 :(得分:0)
您可以尝试添加正常迁移并修改Up / Down方法,使它们只包含2个新表。