重命名保持相同表名的模型

时间:2015-10-13 07:28:39

标签: c# entity-framework-6

我意识到我错误地复制了我的模型名称(Requests而不是Request)。

该表当然是Requests创建的,但为了保持一致性,我想将我的模型重命名为Request,同时保留其他所有内容。

重命名后运行add-migration将创建一个空迁移,但运行update-database

  

无法更新数据库以匹配当前模型,因为存在挂起的更改并且已禁用自动迁移。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将DbMigrationsConfiguration.AutomaticMigrationsEnabled设置为true以启用自动迁移。   您可以使用Add-Migration命令将挂起的模型更改写入基于代码的迁移。

有快速的方法可以做我想要的吗?

1 个答案:

答案 0 :(得分:2)

像这样创建一个Configuration类:

public class ChangedModelConfiguration : EntityTypeConfiguration<ChangedModelName>
    {
        public ChangedModelConfiguration()
        {
            ToTable("SameTableName", "YourSchemaName");
        }
    }

然后添加DbContext的派生类'OnModelCreating方法

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   modelBuilder.Configurations.Add(new ChangedModelConfiguration());
}

或者

只需添加DbContext的派生类'OnModelCreating方法

即可
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<ChangedModelName>().ToTable("SameTableName", "YourSchemaName");
}

如果您更喜欢DataAnnotations,只需在模型顶部添加此属性,如下所示:

using System.ComponentModel.DataAnnotations.Schema;

[Table("YourSchemaName.SameTableName")]
public partial class ChangedModelName
{
    // Model properties
}