2013-11-10 5 views
2

У меня есть два простых классов:Entity Framework один-ко-многим

class Student 
{ 
    public int StudentId { get; set; } 
    public int IndeksNo { get; set; } 
    public string Name { get; set; } 
    public string LastName { get; set; } 
    public virtual Group Group { get; set; } 
} 

И

class Group 
{ 
    public int GroupId { get; set; } 
    public string Name { get; set; } 
    public virtual List <Student > Students { get; set; } 
} 

База данных создается правильно (с помощью Code First). Я добавил пару элементов в обе таблицы, но все время список учащихся и свойство Group в Student равны нулю. Понятия не имею почему. Я искал решение около часа, и я придумал что-то вроде этого:

Но это не поможет. Я не знаю, что может пойти не так, или почему Group.Students и Student.Group всегда равны нулю. Список групп и список студентов выбраны из db успешно - я имею в виду все параметры, кроме этих соединений.

ответ

2

Для использования функции Lazy Loading объекта EntityFramework. Ваше навигационное свойство должно быть виртуальным. В вашем классе Student в корпусе. Проблема заключается в вашем классе Group. Навигационная свойство является виртуальным List<Student> он должен быть virtual ICollection<Student>

Вы можете просто изменить ваш Group к

class Group 
{ 
    public int GroupId { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Student > Students { get; set; } 
} 
+0

По свойству навигации в классе Student вы имеете в виду внешний ключа к группе (GroupID)? – Blood

+0

Да, класс ученика в порядке, без проблем –

+0

К сожалению, это не решит проблему;/ – Blood

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