2016-05-09 2 views
2

Я пытаюсь сопоставить два класса с использованием Entity Framework 7.0.0-rc1-final. Вот мои классы:EF7 Отображение «один ко многим»

public class ParentClass 
    { 
      public ParentClass() { } 

      [Key] 
      public Int32 Id { get; set; } 

      [Required] 
      public String Field { get; set; } 

      public List<ChildClass> Children { get; set; } 

    } 

    public class ChildClass 
    { 
     [Key] 
     public Int32 Id { get; set; } 

     public Int32 ParentID { get; set; } 

     public ParentClass Parent { get; set; } 
    } 

и у меня есть код отображения в моем контексте класса с Fluent API:

builder.Entity<ChildClass>().HasOne(x => x.Parent) 
      .WithMany(x => x.Children).HasForeignKey(x => x.ParentID); 

Затем я добавляю пару экземпляров ParentClass с детьми и сохранить их в БД. Они сохраняются в БД и хорошо выглядеть в БД, но когда я пытаюсь получить список ParentClass детей У меня всегда есть нулевой список:

var data = _context.ParentInstances.ToList(); 
data[any].Children == null 

ответ

1

Вы должны объявить о том, что вы хотите включить детей в запросе Try:

var data = _context.ParentInstances.Include(p => p.Children).ToList(); 

Edit:

для забудьте добавить ссылку на Microsoft.Data.Entity

+1

Большое спасибо, что сработало. Нужно ссылаться на Microsoft.Data.Entity, чтобы использовать метод Include –

+0

рад помочь. Я обновил ответ с вашего комментария о необходимой ссылке –

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