实体框架dbset哪个型号?

时间:2014-10-01 12:41:03

标签: c# sql asp.net-mvc entity-framework

使用实体框架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吗?

谢谢

1 个答案:

答案 0 :(得分:4)

根据documentation(强调是我的):

  

类型发现

     

&LT;剪断&GT;

     

在以下示例中,仅定义了一个DbSet属性   SchoolEntities类(部门)。 Code First使用此属性   发现并引入任何引用的类型。

但是,如果您希望独立于Employee操纵Department s列表,则应将其包括在内。