首页 > 解决方案 > 有没有办法创建相同模型或类的对象?

问题描述

我想在我的 Employee 类或 ASP net Core 的模型中添加一个经理 ID,我的代码如下:

namespace WorkPermit.Models
{
    public class Employee
    {
        [Key]
        public int EmployeeID { get; set; }

        [Required(ErrorMessage = "Please Enter Employee Number")]
        [Display(Name = "Employee Number")]
        public int EmployeeNumber { get; set; }

        [Required(ErrorMessage ="Please Enter Employee Name")]
        [Display(Name ="Employee Name")]
        [StringLength(50, MinimumLength = 4)]
        public string EmployeeName { get; set; }

        [Required(ErrorMessage = "Please Enter Employee Phone Number")]
        [Display(Name = "Employee Phone Number")]
        public int EmployeePhoneNumber { get; set; }

        [ForeignKey("JobTitle")]
        [Display(Name = "Job Title")]
        [Required(ErrorMessage = "Please Select The Job Title")]
        public int JobID { get; set; }
        public virtual JobTitle JobTitle { get; set; }


    }
}



namespace WorkPermit.Models
{
    public class JobTitle
    {
        [Key]
        public int JobID { get; set; }

        [Display(Name ="Job Title")]
        [StringLength(50, MinimumLength = 4)]
        public string JobName { get; set; }

        public virtual ICollection<Employee> Employees { get; set; }
    }
}

最后我想创建同一类员工的对象是经理和经理管理员工列表。

标签: c#asp.net-coreasp.net-mvc-5entity-framework-core

解决方案


如果经理也是雇员,我会这样做。一个员工可以有很多员工,在这种情况下,他是经理,或者你对这些子员工的称呼。因此,如果ManagerID为 null,则表示该员工没有经理。

public class Employee
{
    public int EmployeeID { get; set;} 
    public int? ManagerID {get;set;}  
    public Employee Manager{get;set;} 
    public virtual ICollection<Employee> Employees
 } 

推荐阅读