实体框架迁移不会检测对模型ASP.NET的更改

时间:2015-07-20 21:38:17

标签: asp.net entity-framework ef-migrations

我刚刚为我的模型添加了3个新类/表,包含主键和外键约束。当我运行Add-Migration时,它返回一个带有空白Up()和Down()方法的迁移。

Add-Migration 'Added Table1 Table2 Table3'

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

    public override void Down()
    {
    }
}

我已经在我的解决方案中清理并重建了所有必要的项目。

我还仔细检查了配置,以确保连接字符串正确。

2 个答案:

答案 0 :(得分:1)

事实证明我错过了对DataContext中新表的引用。解决方案是将三个新表添加到DataContext。迁移按预期工作。

public DbSet<Table1> Table1Collection { get; set; }
public DbSet<Table2> Table2Collection { get; set; }
public DbSet<Table3> Table3Collection { get; set; }

答案 1 :(得分:0)

首先,我假设您使用的是Sql Server数据库。 由实体框架“dbo._MigrationHistory”创建的Sql Server数据库上有一个表。此表包括迁移操作以及迁移类。

在Package Manager控制台上创建和执行迁移时,Visual Studio不仅会检查您的模型更改,还会检查数据库中的此文件。您的模型和dbo._MigrationHistory文件之间可能存在某些同步问题。在这种情况下,实体框架不会像上面提到的那样创建正确的迁移文件。您可以尝试从dbo._MigrationFile中删除最后一条记录来解决问题。 祝你好运

相关问题