我有两个简单的类:
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)。我已经在两个表中添加了几个项目,但学生列表和Student中的Group属性都是null。我不知道为什么。我已经搜索了大约一个小时的解决方案,我想出了类似的东西:
modelBuilder.Entity<Student>()
.HasRequired(st => st.Group)
.WithMany(gr => gr.Students)
.WillCascadeOnDelete(false);
但它没有帮助。我不知道可能出了什么问题,或者为什么Group.Students和Student.Group始终为null。从db中成功选择了组列表和学生列表 - 我的意思是除了那些连接之外的所有参数。
答案 0 :(得分:2)
要使用EntityFramework的Lazy Loading功能。您的导航属性必须是虚拟的。在你的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; }
}