【发布时间】:2015-04-07 05:40:58
【问题描述】:
假设我有 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; }
,实体框架将自动尝试在 Departments 的存储库中找到具有 DepID 的部门对象,并将其分配给 Employee.Department。(无论何时从其存储库中获取 Employee)这很容易完成,因为 Employee 和部门具有相同名称的连接列。但是如何在 Employee 和 Manager 之间强制执行相同的行为呢?如您所见,Manager 中的键列名为 ManagerID,而 Employee 中对应的列是 MngrID。有那个属性吗?
【问题讨论】:
-
我认为您需要在 Department 类中拥有
Employee类型的virtual集合属性,并像 manager.Employees(集合属性)一样访问它,EF 将为您管理所有事情。跨度>
标签: entity-framework relationship entities