Entity Framework 同一实体的一对多关系

Entity Framework One-Many Relationship on Same Entity

我需要在 Entity Framework 中定义组织结构图模式。

PersonelJob 实体模型为:

public class PersonelJob : BaseEntity
{
    public Int64 ID { get; set; }
    public string Name { get; set; }
    public Int64? ParentId { get; set; }
    public virtual PersonelJob Parent { get; set; }
    public virtual ICollection<PersonelJob> Childs { get; set; }
}

如您所见,每项工作都可以是工作父项并有一些工作子项。

如何使用 Fulent Api 将此实体映射到数据库?

覆盖上下文中的 OnModelCreating 方法并添加此配置:

modelBuilder.Entity<PersonelJob>()
            .HasOptional(pj => pj.Parent)
            .WithMany(pj=>pj.Childs)
            .HasForeignKey(pj => pj.ParentId);