我有数据库和多个表,我在我的项目中使用EF代码第一种方法。
在某些时候,我需要更改数据库中某些或所有表的名称。
在代码优先方法中实现它的最佳方法是什么?
答案 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");
}