根据属性值映射到类

时间:2015-06-06 15:27:56

标签: c# mysql entity-framework

说我有两个班级

class Employee 
{
    public string EmployeeId { get; set; }
    public int Manager { get; set; }
}

class Manager : Employee 
{

}

其中int Manager可以是10。我想在EmployeeContext中创建一个映射,以便employee表中的employee表项(其中manager等于1)映射到Manager类。

1 个答案:

答案 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