我正在使用實體框架5與Code First和延遲加載禁用。鑑於以下幾點:爲什麼我需要在我的子類中使用EF5的虛擬屬性?
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中得到一個錯誤。
但是我不知道,因爲我有DepartmentID? – Alan2
DepartmentId很有用,但Department屬性包含Department實體的所有列。如果您需要了解有關部門的詳細信息(名稱等),那麼這很方便 - 在使用課程時 – TGH