我对EF asp.net mvc中的代码第一逻辑有些困惑。在asp.net页面上的例子说,对于本数据库结构 MVC asp.net中的关系逻辑代码优先的一对多EF
public class Student
{
public int ID { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
public DateTime EnrollmentDate { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
public class Enrollment
{
public int EnrollmentID { get; set; }
public int CourseID { get; set; }
public int StudentID { get; set; }
public Grade? Grade { get; set; }
public virtual Course Course { get; set; }
public virtual Student Student { get; set; }
}
为什么我需要在模型中为学生入学指定?不是SQL关系在招生中已经定义,即我可以(不包括EF asp.net)通过执行类似
SELECT course.Title FROM enrollment, course WHERE enrollment.student = studentID AND course.courseID = enrollment.CourseID
在这里得到了一个学生都coureses我不需要任何信息在学生表中注册。为什么在MVC EF设置中需要它?
我会说这个例子有点过了top ... Student.Enrollments成员被声明为虚拟的,因此它被延迟加载并服务于'helper'的目的,以便直接从代码中访问注册表。 – pijemcolu