Entity framework 更改与实体模型相关的表名

Entity framework 更改与实体模型相关的表名,entity-framework,Entity Framework,我的数据库中有一些数据在一个名为“Test”的表中。 我复制了一张名为“CopyTest”的表格 如果我改变: modelBuilder.Entity<IISLog>() .ToTable("Test"); modelBuilder.Entity() .ToTable(“测试”); 致: modelBuilder.Entity() .ToTable(“CopyTest”); 我得到一个错误,说: 自创建数据库以来,上下文已更改。考虑使用 代码优先迁移以更新数据库 我怎样

我的数据库中有一些数据在一个名为“Test”的表中。 我复制了一张名为“CopyTest”的表格

如果我改变:

modelBuilder.Entity<IISLog>()
    .ToTable("Test");
modelBuilder.Entity()
.ToTable(“测试”);
致:

modelBuilder.Entity()
.ToTable(“CopyTest”);
我得到一个错误,说:

自创建数据库以来,上下文已更改。考虑使用 代码优先迁移以更新数据库

我怎样才能阻止它的出现?这只是一个表名更改:)

  • 解决方案1
删除第一次迁移,然后重试:

Add-Migration <migration-name>
如果它不起作用

  • 解决方案2
尝试从SQL server Management studio中删除迁移历史记录

参考URL-

迁移到初始数据库 与

然后更新到当前状态:

Update-Database 
如有必要,请再次添加迁移:

Add-Migration TableNameUpdate

使用
addmigration Rename\u Test\u To\u CopyTest添加新迁移

然后,在生成的文件中,使用
RenameTable
方法:

public partial class Rename_Test_To_CopyTest : DbMigration
{
    public override void Up()
    {
        RenameTable("dbo.Test", "dbo.CopyTest");
    }

    public override void Down()
    {
        RenameTable("dbo.CopyTest", "dbo.Test");
    }
}
然后像往常一样使用
更新数据库

Update-Database 
Add-Migration TableNameUpdate
public partial class Rename_Test_To_CopyTest : DbMigration
{
    public override void Up()
    {
        RenameTable("dbo.Test", "dbo.CopyTest");
    }

    public override void Down()
    {
        RenameTable("dbo.CopyTest", "dbo.Test");
    }
}