2015-02-25 4 views
0
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); 

Но это неправильно

ответ

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

Спасибо, это работает! –

Смежные вопросы