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 中的最后一条记录来解决问题。
祝你好运
我刚刚在我的模型中添加了 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 中的最后一条记录来解决问题。 祝你好运