C# 导航属性与继承实体框架

C# 导航属性与继承实体框架,c#,.net,entity-framework,oop,C#,.net,Entity Framework,Oop,我试图探索是否有不同于我习惯于使用EntityFramework和数据模型之间关系的方法 比方说,我有以下两门课: public class Person { public string Name { get; set; } public string Surname { get; set; } } public class Employee { public string JobDescripion { get; set; } } 让我们假设数据库中这两个模型之间存

我试图探索是否有不同于我习惯于使用EntityFramework和数据模型之间关系的方法

比方说,我有以下两门课:

public class Person
{
    public string Name { get; set; }
    public string Surname { get; set; }
}

public class Employee
{
    public string JobDescripion { get; set; }
}
让我们假设数据库中这两个模型之间存在一对多关系,其中许多模型位于
Employee
类中

我将此映射如下:

public class Person
{
    public string Name { get; set; }
    public string Surname { get; set; }

    //Navigational Property
    public ICollection<Employee> Employees { get; set; }
}

public class Employee
{
    public string JobDescripion { get; set; }

    //navigational property 
    public virtual Person Person { get; set; }
}

EntityFramework将如何处理这个问题

继承表示“是一个”关系,而组合(导航属性)表示“有一个”关系。在继续之前,请确定
员工
人员
之间的关系@fredericodipum一个人可以有多个员工。一对多关系如果这是你的领域模型(一个人有员工,但不是员工),那么你就完了。使用导航属性。@monstertjie_za-为什么要区分“个人”和“员工”?既然所有员工都是Person,那么您是否需要“Person”类呢?您可以在数据库中创建一个自引用FK,以便员工可以拥有其他员工(如经理和向他们报告的人员等),EF可以处理该问题。@StephenByrne假设我要在代码中引入另一个对象,称为客户端。Client和Employee将具有重叠的属性,这些属性当前位于Person类中。用你的方法,客户和员工之间会有重复的属性吗?
public class Employee : Person