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>
属性添加到所有新表的上下文中。
- 正常创建第二个迁移。
第二次迁移应包含仅创建所需的新表、关系等的代码。无论您是在迁移之间更新数据库还是在最后更新一次都没有关系。
我正在使用 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>
属性添加到所有新表的上下文中。 - 正常创建第二个迁移。
第二次迁移应包含仅创建所需的新表、关系等的代码。无论您是在迁移之间更新数据库还是在最后更新一次都没有关系。