C# 尝试迭代导航属性时发生异常
我在VS2013上得到了一个带有EF的控制台应用程序,我得到了两个型号:C# 尝试迭代导航属性时发生异常,c#,entity-framework,visual-studio-2013,console-application,navigation-properties,C#,Entity Framework,Visual Studio 2013,Console Application,Navigation Properties,我在VS2013上得到了一个带有EF的控制台应用程序,我得到了两个型号: public class Student { public int StudentId { get; set; } public string Name { get; set; } public virtual ICollection<Subject> Subjects { get; set; } public Student() { Subjects
public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public virtual ICollection<Subject> Subjects { get; set; }
public Student()
{
Subjects = new List<Subject>();
}
}
public class Subject
{
public int SubjectId { get; set; }
public string Name { get; set; }
public virtual Student Student { get; set; }
public Subject()
{
Student = new Student();
}
}
公共班级学生
{
公共int StudentId{get;set;}
公共字符串名称{get;set;}
公共虚拟ICollection主题{get;set;}
公立学生()
{
主题=新列表();
}
}
公共课科目
{
public int SubjectId{get;set;}
公共字符串名称{get;set;}
公共虚拟学生学生{get;set;}
公共主题()
{
学生=新学生();
}
}
另外,我还为他们提供了一个数据库上下文。我可以更新数据库并查看我的表,但我无法迭代导航属性。。。例如:
我做错了什么
这是我的EF版本:
请改用此代码:
IList<Student> studs = db.Students.Include("Subjects").ToList();
foreach (var _stud in studs) {
foreach (var sub in _stud.Subject){
}
}
IList studs=db.Students.Include(“受试者”).ToList();
foreach(螺栓中的变位螺栓){
foreach(研究对象中的var子项){
}
}
这是延迟加载特性。你可以把构造器拿出来内部的异常说明了什么?为什么你在构造一个主题时要创建一个学生,但当你构造一个学生时,它会创建新的主题?似乎非常循环,这可能是一个问题?除非你显示内部异常,否则这个问题是无法回答的。没有理由假设延迟加载不会发生。此外,它将生成一个不同的异常。