Entity framework 4 在继承映射中使用FK作为描述符

Entity framework 4 在继承映射中使用FK作为描述符,entity-framework-4,Entity Framework 4,考虑以下模式:Employee和EmployeeType。员工具有fk to EmployeeType EmployeeType可能具有EmployeeTypeId、Description等字段 现在,我想使用EF的继承功能基于Employees fk字段创建对象HourlyEmployee和SaleriedEmployee 这似乎是不可能的。我试过的每一条路都失败了。因为雇员的FK是映射到派生实体HourlyEmployee和SaleriedEmployee的描述符,FK是映射到表Employ

考虑以下模式:Employee和EmployeeType。员工具有fk to EmployeeType EmployeeType可能具有EmployeeTypeId、Description等字段

现在,我想使用EF的继承功能基于Employees fk字段创建对象HourlyEmployee和SaleriedEmployee

这似乎是不可能的。我试过的每一条路都失败了。因为雇员的FK是映射到派生实体HourlyEmployee和SaleriedEmployee的描述符,FK是映射到表EmployeeType的描述符


除了在Employee中添加一个与fk字段重复的seprate字段外,我还能做些什么吗?

如果您不映射关系和EmployeeType表,您应该能够将fk作为任何其他列处理,并将其用作鉴别器。如果映射关系,则继承是冗余的,并且不能使用FK作为鉴别器,因为它已用于处理关系,并且每个列只能映射一次。继承如何是冗余的?因为如果映射关系,则继承没有意义。信息已经是关系的一部分。最糟糕的关系可以更改,您的员工可以更改类型。继承不可能发生这种情况。创建HourlyEmployee实例后,如果不在数据库中创建新记录或直接通过SQL更改鉴别器,就永远不会将其更改为SalariedEmployee。