EF核心,代码第一表未检测到用于迁移定义的未检测到的SCAFOLDER是空的



我在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; }
    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; }
}

现在将事件收费更改为评论员。迁移是空的。

我使用Fluent API进行配置

        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);

这是因为EF核心默认表映射约定(亮点是我的):

按照惯例,将设置每个实体,以将>与DBSET> tentity>属性>属性>属性相同的名称映射到表格上。如果 no dbset&lt; tentity>为给定实体包括,则使用类名称。

我想这与以前的EF不同。必不可少的部分是,尽管您重命名了实体类,但是如果保留旧的DbSet属性名称,则表名不会更改。

最新更新