我创建了两个模型类:
考试:
但是似乎懒加载不起作用,这里是我检索数据的示例:
我尝试访问students.Exams属性时,出现了NullReferenceException异常。我的代码哪里有问题?
我的代码问题在于Entity Framework的延迟加载未能正常工作,我不知道为什么。这与未初始化Exams无关,因为当我尝试访问Exams属性时,Entity Framework应该自动进行初始化。
Student
和 Exam
。
< p > Student:
class Student
{
[Key]
public int StudentId { get; set; }
[Required, MaxLength(30)]
public string FirstName { get; set; }
[Required, MaxLength(50)]
public string LastName { get; set; }
[Required]
public DateTime BirthDate { get; set; }
public virtual ICollection<Exam> Exams { get; set; }
}
考试:
public enum Grade
{
A, B, C, D, E, F
}
class Exam
{
[Key]
public int ExamId { get; set; }
[Required]
public Grade Grade { get; set; }
[ForeignKey("Student"), Required]
public int StudentId { get; set; }
public virtual Student Student { get; set; }
}
但是似乎懒加载不起作用,这里是我检索数据的示例:
using (var context = new StudentContext())
{
context.Configuration.LazyLoadingEnabled = true;
context.Configuration.ProxyCreationEnabled = true;
var student = context.Students.Single(s => s.LastName == "ABC");
foreach (var exam in student.Exams)
{
Console.WriteLine($"{exam.ExamId}: {exam.Grade}");
}
context.SaveChanges();
}
我尝试访问students.Exams属性时,出现了NullReferenceException异常。我的代码哪里有问题?
我的代码问题在于Entity Framework的延迟加载未能正常工作,我不知道为什么。这与未初始化Exams无关,因为当我尝试访问Exams属性时,Entity Framework应该自动进行初始化。
student.Exams
是一个空集合,但是EF应该已经加载它了。 - monoh_