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

本文关键字:模型 重命名 | 更新日期: 2023-09-27 18:17:19

我意识到我错误地把我的模型名复数化了(把Request写成了Requests)。

这个表当然是作为Requests创建的,但是为了一致性,我想把我的模型重命名为Request,同时保持其他一切都是现在的方式。

重命名后运行add-migration会创建一个空迁移,而运行update-database会显示

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

是否有快速的方法来做我想做的事?

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

创建如下配置类:

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
}