Entity Framework 对象包含相同的对象

Entity Framework Object contains same object

public class ProjectPage
{
    [Key]
    public Guid Id { get; set; }
    public ProjectPageType Type { get; set; }

    public Guid? HeaderId { get; set; }
    public ProjectPage Header { get; set; }

    public Guid? FooterId { get; set; }
    public ProjectPage Footer { get; set; }
}

是否可以先在Entity Framework代码中建立这个关系?我可以在模型创建上写些什么,让它发挥作用?现在我有:

modelBuilder.Entity<ProjectPage>().HasOptional(p => p.Header);
modelBuilder.Entity<ProjectPage>().HasOptional(p => p.Footer);

但是错了

您必须指定外键:

 modelBuilder.Entity<ProjectPage>()
             .HasOptional(e => e.Header)
             .WithMany()
             .HasForeignKey(m => m.HeaderId);

 modelBuilder.Entity<ProjectPage>().
             .HasOptional(e => e.Footer)
             .WithMany()
             .HasForeignKey(m => m.FooterId);