假设我有一个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不支持指定的类型成员“Manager”。仅支持初始值设定项,实体成员和实体导航属性。
我经常查询Employee表,然后想要与员工一起显示公司和部门信息。因此,有许多行Employee.Manager.Department.Company.Field
,这使得它看起来很混乱。
将CompanyID添加到Manager表以及将CompanyID和DepartmentID添加到Employee表是否更好?是否会影响数据库规范化?什么样的范例描述了这些问题?
思考,欢迎提出意见
答案 0 :(得分:1)
属性完全被EF忽略,因此你得到的异常与那些代码无关。你的方法很好,如果你正确地设置你的实体,它将会起作用。