使用实体框架6和mvc 5,假设我有以下模型:
class Employee
{
public int EmployeeID { get; set; }
public String Name { get; set; }
public Department Department { get; set; }
}
class Department
{
public int DepartmentID { get; set; }
public String DepartmentName { get; set; }
public int FloorNumber { get; set; }
}
在DbContext
所在的DbSet
课程中,我是仅DbSet<Employee>
还是{我}还必须DbSet<Department>
吗?现在我只做DbSet<Employee>
,因为我理解它的方式,主模型是Employee
里面有一个复杂类型Department
,所以理论上如果加载Employee
那么部门应该被动加载(在创建表时加载)?
目前,我有Department
作为延迟加载的virtual
字段,因为当我尝试在没有virtual
属性的情况下访问它时,我得到null pointer exception
。
另外,我的模型比复杂对象稍微复杂一点,每个都需要自己的DbSet
吗?
谢谢
答案 0 :(得分:4)
根据documentation(强调是我的):
类型发现
&LT;剪断&GT;
在以下示例中,仅定义了一个DbSet属性 SchoolEntities类(部门)。 Code First使用此属性 发现并引入任何引用的类型。
但是,如果您希望独立于Employee
操纵Department
s列表,则应将其包括在内。