我正在使用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中收到错误。
答案 0 :(得分:1)
Department属性作为指向课程特定部门的链接存在。 它可以是一对多关系的一部分,使您可以从课程访问部门。
答案 1 :(得分:1)
它包含您的Department
信息,Depertment Name
Courses
信息。我认为您可以删除它,因为Department
的信息您也可以通过搜索DepartmentID
来访问1}}。但保留它会更好。