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 –