当引用的列具有不同名称时如何引用相关实体

How to reference a related entity when referenced columns have different names

假设我有 3 个实体:

public class Department{
   [Key]
   public int DepID {get;set;}
   .......
}
public class Manager{
   [Key]
   public int ManagerID {get;set;}
   .......
}

public class Empoyee{
   [Key]
   public int EmpID {get;set;}
   .......
   public int DepID{get;set}
   public int MngrID{get;set}
}

您可能猜到了,Employee 实体与 Department 和 Manager 都有关系。现在,如果我将它添加到 Employee

 public virtual Department Department { get; set; }

,entity framework 将自动尝试在 Departments 的存储库中查找具有 DepID 的部门对象,并将其分配给 Employee.Department。(每当从其存储库中获取 Employee 时)这很容易完成,因为 Employee 和 Department 都有同名的连接列。但是如何在 Employee 和 Manager 之间执行相同的行为呢?如您所见,Manager 中的键列名为 ManagerID,而 Employee 中的对应列为 MngrID。有那个属性吗?

在 ForeignKey 属性的帮助下,我终于找到了执行此操作的正确方法。

public class Manager{
   [Key]
   public int ManagerID {get;set;}
   .......
}

public class Empoyee{
   [Key]
   public int EmpID {get;set;}
   .......
   public int DepID{get;set}
   public int **MngrID**{get;set}

   **[ForeignKey("MngrID")]
   public virtual Manager Manager {get;set;}**
}