Entity framework 更改与实体模型相关的表名
我的数据库中有一些数据在一个名为“Test”的表中。 我复制了一张名为“CopyTest”的表格 如果我改变:Entity framework 更改与实体模型相关的表名,entity-framework,Entity Framework,我的数据库中有一些数据在一个名为“Test”的表中。 我复制了一张名为“CopyTest”的表格 如果我改变: modelBuilder.Entity<IISLog>() .ToTable("Test"); modelBuilder.Entity() .ToTable(“测试”); 致: modelBuilder.Entity() .ToTable(“CopyTest”); 我得到一个错误,说: 自创建数据库以来,上下文已更改。考虑使用 代码优先迁移以更新数据库 我怎样
modelBuilder.Entity<IISLog>()
.ToTable("Test");
modelBuilder.Entity()
.ToTable(“测试”);
致:
modelBuilder.Entity()
.ToTable(“CopyTest”);
我得到一个错误,说:
自创建数据库以来,上下文已更改。考虑使用
代码优先迁移以更新数据库
我怎样才能阻止它的出现?这只是一个表名更改:)- 解决方案1:
Add-Migration <migration-name>
如果它不起作用
- 解决方案2:
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");
}
}