2017-08-31 69 views
0

我哈瓦上,我添加了以下字段的类“员工”:包括未亚型有工作 - EF代码第一次

[Key] 
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public int Id { get; set; } 

[Required] 
[MaxLength(50)] 
public string LastName { get; set; } 

[MaxLength(50)] 
public string FirstName { get; set; } 

我有两个其他类“高级”和“少年”上,我已经添加了以下字段:

[Key] 
[ForeignKey("Employee")] 
public int Id { get; set; } 

[Required] 
public Employee Employee { get; set; } 

“小型”和“高级”各自具有特定的字段(除了在员工中发现的常见字段)。

总之,“高级”和“初级”班与“员工”班共用同一个钥匙。 在SQL中,Id字段(在“Senior”和“Junior”表中)是主键和外键。

这个系统工作完美!

我的问题是这样的:我想能够从员工的实例访问初级(例如:员工[0] .Junior)

要做到这一点,我添加了以下字段Employee类:

[ForeignKey("Id")] 
public Senior Senior { get; set; } 

[ForeignKey("Id")] 
public Junior Junior { get; set; } 

实体框架,我得到的所有员工是这样的:

var employees = _context.Employees.Include("Junior").Include("Senior").ToList(); 

问题是所有初级和高级字段都为空。 “包含”指令似乎不起作用。

+0

它适合我。 –

回答

1

你不需要ForeignKey属性,但你应该对其他实体的集合 - SeniorJunior应该有Employee的集合。 EF会自动计算出来,如果你让它为你生成数据库。