ale*_*dru 27 c# entity-framework entity-framework-4.1
嗨,我只是学习使用Entity Framework Code First,我似乎无法理解.我根据教程创建了三个模型:
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; }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我不明白虚拟的属性是什么.如果我检查数据库,每个属性都没有列条件箱,只有其他属性.
那么当您使用virtual关键字创建属性时会发生什么?
ken*_*n2k 39
它用于管理延迟加载和更改跟踪.
EF将在运行时生成代理类型,这些类型是从POCO类继承的动态生成类型,并添加所有EF内容以管理重写的虚拟属性中的延迟加载/更改跟踪.
因此,virtual这里不是"神奇的关键字",virtual因此您可以在运行时使用其他与EF相关的代码继承您的POCO.
| 归档时间: |
|
| 查看次数: |
24175 次 |
| 最近记录: |