为什么我需要在子类中使用EF5的虚拟属性?

时间:2013-06-27 04:31:34

标签: c# linq entity-framework entity-framework-5

我正在使用Entity Framework 5和Code First并禁用延迟加载。鉴于以下内容:

public class Department
{
    public int DepartmentID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Course> Courses { get; set; }
}

public class Course
{
    public int CourseID { get; set; }
    public string Title { get; set; }
    public int Credits { get; set; }
    public int DepartmentID { get; set; }
    public virtual Department Department { get; set; }
}

// Mapping Relationships for Course

<code here>
this.HasRequired(t => t.Department)
.WithMany(t => t.Courses)
.HasForeignKey(d => d.DepartmentID);

有人可以解释为什么我需要:

public virtual Department Department { get; set; }

如果完全删除此行,会发生什么?我什么都做不到?据我所知,我唯一不能做的是使用Entity Framework来检查我的外键。但是我已经在数据库中设置了这个,所以我仍然会从Db中收到错误。

2 个答案:

答案 0 :(得分:1)

Department属性作为指向课程特定部门的链接存在。 它可以是一对多关系的一部分,使您可以从课程访问部门。

答案 1 :(得分:1)

它包含您的Department信息,Depertment Name Courses信息。我认为您可以删除它,因为Department的信息您也可以通过搜索DepartmentID来访问1}}。但保留它会更好。

相关问题