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

时间:2015-07-28 12:24:13

标签: entity-framework ef-code-first

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

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

指定表名
[Table("MyNewTableName")]
class MyEntity
{
    // props
}

如果你使用流利的interace

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
      modelBuilder.Entity<MyEntity>().ToTable("MyNewTableName");
}

答案 1 :(得分:2)

这将更改您的实体映射到的表格。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
      modelBuilder.Entity<User>().ToTable("Users");
}