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);
但这是错误的
答案 0 :(得分:2)
您必须指定外键:
modelBuilder.Entity<ProjectPage>()
.HasOptional(e => e.Header)
.WithMany()
.HasForeignKey(m => m.HeaderId);
modelBuilder.Entity<ProjectPage>().
.HasOptional(e => e.Footer)
.WithMany()
.HasForeignKey(m => m.FooterId);