0
下面是使用Code First Entity Framework(DbContext)控制數據庫表的兩個類。惰性加載在EntityFramework核心中不起作用
public class Employee
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string EmployeeName { get; set; }
public int DepartmentId { get; set; }
public Department Department { get; set; }
}
-
public class Department
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string DepartmentName { get; set; }
}
如果我檢索與導航屬性下方的線部員工爲null:
var employees = _context.Employees.ToList();
但是,如果我第一次填充一個單獨的變量與部門,像這樣...
var departments = _context.Departments.ToList();
var employees = _context.Employees.ToList();
... 員工列表中的每個員工都包含該部門對象。我的問題: 填充導航屬性的最佳做法是什麼?我曾設想過,實體框架默認會這樣做,並且ToList()方法會處理延遲加載。
如果通過* notification *屬性,您的意思是** navigation **屬性,搜索EF *延遲加載*,*急切加載*和*顯式加載*以瞭解哪一個適合您(沒有「最佳」 )。 –
是的,我指的是導航屬性。我會糾正這個問題。至於懶/加載:ToList()方法不應該加載數據嗎? – Sparked
它僅加載該數據,例如, 「僱員」,但不包括** Employee.Department的相關**數據。請參閱https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx –