假设我有一个 Company 表、一个 Department 表、一个 Manager 表和一个 Employee 表。列表中存在一对多关系。所以 Employee 表有一个 ManagerID 外键,Manager 表有一个 DepartmentID 键,以此类推。
我使用 EF 设计器创建 DbContext 和其他类。我在设计器中添加了表与外键之间的关联。问题是我无法在设计器中的 Employee 表和 Department 或 Company 表之间建立关联。
我尝试使用以下 Department 属性为 Employee 创建一个单独的部分类:
public Department Department {
get { return this.Manager.Department; }
}
但是,当我运行程序时,出现以下异常:
LINQ to Entities 不支持指定的类型成员“经理”。仅支持初始化程序、实体成员和实体导航属性。
我经常查询Employee表,然后想和员工一起显示公司和部门的信息。所以有很多行Employee.Manager.Department.Company.Field
,这使它看起来杂乱无章。
将 CompanyID 添加到 Manager 表并将 CompanyID 和 DepartmentID 添加到 Employee 表会更好,还是会影响数据库规范化?什么样的范式描述了这些问题?
欢迎提出想法、意见