在代码中首先重命名DB中的表

Mic*_*ael 2 entity-framework ef-code-first

我有数据库和多个表,我在我的项目中使用EF代码第一种方法.

在某些时候,我需要更改数据库中某些或所有表的名称.

在代码优先方法中实现它的最佳方法是什么?

bub*_*ubi 5

您需要使用迁移重命名表,即

public override void Up()
{
    RenameTable("MyOldTableName", "MyNewTableName");
}

public override void Down()
{
    RenameTable("MyNewTableName", "MyOldTableName");
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要更改映射上的表名称.如果使用数据注释,则可以使用Table属性指定表名

[Table("MyNewTableName")]
class MyEntity
{
    // props
}
Run Code Online (Sandbox Code Playgroud)

如果你使用流畅的interace

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
      modelBuilder.Entity<MyEntity>().ToTable("MyNewTableName");
}
Run Code Online (Sandbox Code Playgroud)