繁体   English   中英

是否可以在实体框架中删除链接的导航属性

[英]Is it possible remove chained navigation properties in Entity Framework

可以说我有一个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有很多行,这使它看起来很混乱。

最好在Manager表中添加CompanyID,在Employee表中添加CompanyID和DepartmentID,还是会影响数据库规范化? 什么样的范式描述了这些问题?

有想法,意见欢迎

EF没有设置程序的属性完全被EF忽略,因此您获得的异常与这些代码无关。 您的方法很好,如果您正确设置实体,它将会起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM