【发布时间】:2012-05-31 20:07:35
【问题描述】:
我一直在关注 Microsoft 网站上的 contoso 大学教程,但我对 Entity Framework 如何做一些事情有一些疑问。来了……
在教程开始时,我们创建了三个类,它们将在我的数据库中转换为表。
我想知道实体何时以及如何实例化我的类以填充对象。
我使用代码优先的方法。
例子:
我正在使用的类:
public class Course
{
public int CourseID { get; set; }
public string Title { get; set; }
public int Credits { 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 decimal? Grade { get; set; }
public virtual Course Course { get; set; }
public virtual Student Student { get; set; }
}
public class Student
{
public int StudentID { get; set; }
public string LastName { get; set; }
public string FirstMidName { get; set; }
public DateTime EnrollmentDate { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
按照教程完成后,我现在可以在注册列表中列出我的所有 Students 及其各自的 Course(s),以及它们的属性。
实体何时实例化我的 Student 类并使用相应的 Enrollment(s) 列表填充它?
它如何知道哪些注册与该学生相关联? 我没有看到任何新的 constructor() 被调用过。
这可能很简单,但我有点迷路了。
谢谢
【问题讨论】:
-
如果你的类中具有以下格式的属性 SomeOtherClassID EF 将其设为外键。因此,在 Enrollments 类中,CourseID 和 StudentID 是 Student 和 Course 表的外键。 ICollection 用于描述一对多关系。
标签: asp.net-mvc-3 entity-framework-4 ef-code-first entity