【问题标题】:Entity Framework Migrations Does Not Detect Changes to Model ASP.NET实体框架迁移未检测到模型 ASP.NET 的更改
【发布时间】:2015-07-20 21:38:16
【问题描述】:
我刚刚在我的模型中添加了 3 个新的类/表,它们具有主键和外键约束。当我运行 Add-Migration 时,它返回一个带有空白 Up() 和 Down() 方法的迁移。
Add-Migration 'Added Table1 Table2 Table3'
public partial class AddedTable1Table2Table3 : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
我已经清理并重建了我的解决方案中所有必要的项目。
我还仔细检查了配置以确保连接字符串正确。
【问题讨论】:
标签:
asp.net
entity-framework
entity-framework-migrations
【解决方案1】:
事实证明,我缺少对 DataContext 中新表的引用。解决方案是将三个新表添加到 DataContext。迁移按预期进行。
public DbSet<Table1> Table1Collection { get; set; }
public DbSet<Table2> Table2Collection { get; set; }
public DbSet<Table3> Table3Collection { get; set; }
【解决方案2】:
首先,我假设您使用的是 Sql Server 数据库。
Sql Server 数据库上有一个名为“dbo._MigrationHistory”的实体框架创建的表。此表包括您的迁移操作以及您的迁移类。
当您在包管理器控制台上创建并执行迁移时,Visual Studio 不仅会检查您的模型更改,还会检查您数据库中的此文件。您的模型和 dbo._MigrationHistory 文件之间可能存在一些同步问题。在这种情况下,实体框架不会像上面提到的那样创建正确的迁移文件。您可以尝试从 dbo._MigrationFile 中删除最后一条记录来解决问题。
祝你好运