如何在Entity Framework中正确建模?

时间:2017-11-04 03:06:29

标签: asp.net-core entity-framework-6

我要求我不知道如何完成,在我现有的数据中我有一个客户列表,每个客户都应该被分配一个staffMember来与他们合作,所以这是一对一的关系还是一个1到很多关系,我无法围绕如何建模数据,因为我想弄清楚如何正确建模。由于可以将工作人员分配给许多不同的客户,我应该如何对此进行建模?这看起来是否正确? 我想要的是在输入新客户时,从表格中提取工作人员列表,理想情况是名称 我认为我可能会使用linq ..

    public class Customer
{
    public int CustomerId { get; set; }
    public string Name { get; set; }
    public string BusinessName { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public DateTime RequestDate { get; set; }
    public Staff Staff { get; set; }

    public List<CustomerJob> CustomerJobs { get; set; }

}
       public class Staff
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Phone { get; set; }
    public string EMail { get; set; }
    public int CustomerId { get; set; }
}

1 个答案:

答案 0 :(得分:0)

Customer只有1 Staff,而单Staff可能只有1 Customer。所以这是一对多关系。

Customer最好了解其Staff。它可以被称为AssignedStaffStaff itslef不需要具有显示其所有Csutomers的属性。您可以使用简单查询提取Customer Staff列表。

我推荐的课程结构如下:

public class Customer
{
    [Key]
    public int Id { get; set; }

    public string Name { get; set; }
    public string BusinessName { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public DateTime RequestDate { get; set; }
    public Staff AssignedStaff { get; set; }

    public List<CustomerJob> CustomerJobs { get; set; }
}

public class Staff
{
    [Key]
    public int Id { get; set; }

    public string Name { get; set; }
    public string Phone { get; set; }
    public string EMail { get; set; }
}

用于提取Customer的{​​{1}}列表的查询:

Staff