Entity Framework 迁移未检测到模型更改 ASP.NET

Entity Framework Migrations Does Not Detect Changes to Model ASP.NET

我刚刚在我的模型中添加了 3 个新的 classes/tables,具有主键和外键约束。当我 运行 添加迁移时,它 returns 使用空白 Up() 和 Down() 方法的迁移。

Add-Migration 'Added Table1 Table2 Table3'

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

    public override void Down()
    {
    }
}

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

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

事实证明,我缺少对 DataContext 中新表的引用。解决方案是将三个新表添加到 DataContext。迁移按预期进行。

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

首先,我假设您使用Sql服务器数据库。 在由 entity framework 创建的名为 "dbo._MigrationHistory" 的 Sql 服务器数据库上有一个 table。此 table 包括您的迁移操作以及您的迁移 类。

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