说我有两个班级
class Employee
{
public string EmployeeId { get; set; }
public int Manager { get; set; }
}
class Manager : Employee
{
}
其中int Manager
可以是1
或0
。我想在EmployeeContext
中创建一个映射,以便employee表中的employee表项(其中manager等于1)映射到Manager
类。
答案 0 :(得分:1)
您需要实现here所述的TPH继承模式。
您需要添加到所描述的实现中的是 - 您需要在实体类中包含Discriminator
属性并将其映射到相应的数据库字段。然后根据int Manager
属性的值实施Discriminator
,而Manager
只能是只读属性。
如果您想让员工成为经理,您必须更改Discriminator
字段的值。反过来,您必须知道数据库中发生了什么。 TPH远不是银弹,你可能想要使用另一种模式,但这个模式很好。
另见: Entity Framework Inheritance Mapping (TPH)和How to map inherited entities in EF code-first。