实体框架同一实体上的一对多关系

时间:2015-05-24 04:16:12

标签: entity-framework ef-code-first

我需要在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将此实体映射到数据库?

1 个答案:

答案 0 :(得分:1)

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

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