我有一个班级"员工"我添加了以下字段:
[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; }
"小型"和"高级"每个都有特定的字段(除了在Employee中找到的公共字段)。
总之,"高级"和"少年"类与" Employee"共享相同的密钥。类。 在SQL中,Id字段(" Senior"" Junior"表)是主键和外键。
这个系统运作完美!
我的问题是:我希望能够从Employee的一个实例访问Junior(例如:employees [0] .Junior)
为此,我在Employee类中添加了以下字段:
[ForeignKey("Id")]
public Senior Senior { get; set; }
[ForeignKey("Id")]
public Junior Junior { get; set; }
使用Entity Framework,我得到所有员工:
var employees = _context.Employees.Include("Junior").Include("Senior").ToList();
问题是所有Junior和Senior字段都为null。 "包括"指示似乎不起作用。
答案 0 :(得分:1)
您不需要ForeignKey
属性,但您可能应该在另一个实体上拥有集合 - Senior
和Junior
应该有Employee
的集合。如果您让它为您生成数据库,EF会自动计算出来。