2014-10-01 117 views
0

使用实体框架6和MVC 5,假设我有以下型号:实体框架dbset哪些模型?

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

谢谢

回答

3

按照documentation(重点是我的):

类型发现

<剪断>

在下面的例子中,只有一个DbSet属性定义于 SchoolEntities类(Dep artments)。 Code First使用此属性 来发现并引入任何引用的类型。

但是,如果你想处理的Employee自主列出了从您的Department,那么你应该包括它。

+0

谢谢你的回答,但是,员工和部门之间没有继承关系,部门只是员工模型/对象内的一个复杂对象。这里的行为有所不同吗? – 2014-10-01 12:49:24

+0

关于继承的文档是不相关的,我把它们剪掉了。 – DavidG 2014-10-01 12:50:26

+0

我看到我看到了,对不起!再次感谢你 :) – 2014-10-01 12:51:42