Ef code first EF core,未检测到迁移定义的代码优先表重命名,Scafolder为空
当我在EF core中更改类名时,会得到空的迁移生成器 在旧的EFs中,它通常会自动生成重命名表的代码 但不在EF核心工作Ef code first EF core,未检测到迁移定义的代码优先表重命名,Scafolder为空,ef-code-first,migration,entity-framework-core,Ef Code First,Migration,Entity Framework Core,当我在EF core中更改类名时,会得到空的迁移生成器 在旧的EFs中,它通常会自动生成重命名表的代码 但不在EF核心工作 public class EventComment : Comment { [Key] public int CommentID { get; set; } public int? ParentID { get; set; } public virtual EventComment Parent { get; set; } pub
public class EventComment : Comment
{
[Key]
public int CommentID { get; set; }
public int? ParentID { get; set; }
public virtual EventComment Parent { get; set; }
public int EventID { get; set; }
public virtual EventMaster EventMaster { get; set; }
}
public class Comment
{
public string CommentTitle { get; set; }
public string CommentDetails { get; set; }
public int UpVoteCount { get; set; }
public int DownVoteCount { get; set; }
public int CommentEmotion { get; set; }
public string CommentedByID { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
}
现在将EventComment更改为CommentMaster。迁移是空的
我使用fluentapi进行配置
builder.Entity<EventComment>()
.HasOne(e => e.EventMaster)
.WithMany()
.HasForeignKey(m => m.EventID);
builder.Entity<EventComment>()
.HasOne(e => e.ApplicationUser)
.WithMany()
.HasForeignKey(m => m.CommentedByID);
builder.Entity<EventComment>()
.HasOne(e => e.Parent)
.WithMany()
.HasForeignKey(x => x.ParentID);
builder.Entity()
.HasOne(e=>e.EventMaster)
.有很多
.HasForeignKey(m=>m.EventID);
builder.Entity()
.HasOne(e=>e.ApplicationUser)
.有很多
.HasForeignKey(m=>m.CommentedByID);
builder.Entity()
.HasOne(e=>e.Parent)
.有很多
.HasForeignKey(x=>x.ParentID);
这是因为EF核心默认表映射(突出显示是我的):
按照惯例,每个实体都将被设置为映射到一个与DbSet属性同名的表,DbSet属性在派生上下文中公开实体。如果给定实体未包含任何数据库集,则使用类名
我想这与之前的EF不同。重要的部分是,尽管重命名了实体类,但如果保留旧的DbSet
属性名,表名将不会更改