Asp.net mvc 在MVC中使用Entity First为表单的多个审阅者建模的优雅方式
如果有多个审阅者,您将如何对表单上的数据建模。您是创建多个集合还是使用数组并添加类型字段?还是别的什么?当我使用注释掉的多个实例时,它在employee表中创建了多个MainForm_id //主要形式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
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)