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