Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在MVC中使用Entity First为表单的多个审阅者建模的优雅方式_Asp.net Mvc_Entity Framework_Entity Framework 6 - Fatal编程技术网

Asp.net mvc 在MVC中使用Entity First为表单的多个审阅者建模的优雅方式

Asp.net mvc 在MVC中使用Entity First为表单的多个审阅者建模的优雅方式,asp.net-mvc,entity-framework,entity-framework-6,Asp.net Mvc,Entity Framework,Entity Framework 6,如果有多个审阅者,您将如何对表单上的数据建模。您是创建多个集合还是使用数组并添加类型字段?还是别的什么?当我使用注释掉的多个实例时,它在employee表中创建了多个MainForm_id //主要形式 public class MainForm { public int Id { get; set; } public virtual ICollection<Employee[]> EmployeeArray { get; set; } //public v

如果有多个审阅者,您将如何对表单上的数据建模。您是创建多个集合还是使用数组并添加类型字段?还是别的什么?当我使用注释掉的多个实例时,它在employee表中创建了多个MainForm_id

//主要形式

public class MainForm
{
    public int Id { get; set; }

    public virtual ICollection<Employee[]> EmployeeArray { get; set; }
    //public virtual ICollection<Employee> EmployeeReviewing { get; set; }
    //public virtual ICollection<Employee> EmployeeSupervisor { get; set; }
    //public virtual ICollection<Employee> EmployeeManager { get; set; }
    //public virtual ICollection<Employee> EmployeeBigBoss { get; set; }

}

我不会将集合直接存储在MainForm类上。相反,我会有一个新的类,包含一个雇员ID和一个formId

///形式

public class MainForm
{
    [Key]
    public int Id { get; set; }
}
///雇员

public class Employee
{
    [Key]
    public int Id { get; set; }
    [ForeignKey("EmployeeType")]
    public int EmployeeTypeId {get;set;}

}
///雇员类型

public class Employee
{
    [Key]
    public int Id { get; set; }
}
///雇员回顾

public class EmployeeReview
{
    [Key]
    public int Id { get; set; }
    [ForeignKey("Employee")]
    public int EmployeeId { get; set; }
    [ForeignKey("MainForm ")]
    public int MainFormId{ get; set; }

    public virtual Employee Employee { get; set; }
    public virtual MainForm MainForm { get; set; }
}
然后您只需查询您的表单,以便:

var reviews = EmployeeReview.Where(x => x.Employee.EmployeeTypeId ==
(int)Enum.Employee.EmployeeSupervisor)
此时的审查将授予您访问所需表格的权限,以及审查该表格的上述类型的员工

var reviews = EmployeeReview.Where(x => x.Employee.EmployeeTypeId ==
(int)Enum.Employee.EmployeeSupervisor)