重命名保持相同表名的模型
本文关键字:模型 重命名 | 更新日期: 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
}