如何在mvc.net中设置两个表之间的关系
本文关键字:两个 之间 关系 mvc net 设置 | 更新日期: 2023-09-27 18:25:45
我刚刚开始使用MVC,现在我想设置两个表之间的关系
这是我的员工表
id |姓名|薪资|部门
这是我的发货表
Deptid|Deptname
现在我有了一个创建视图,可以将数据插入到我的Employee表中
像这个
姓名:
工资:
Deptid:一个包含部门列表的下拉列表[但当我将其保存在表中时,它应该只保存相应的Deptid]
在这里你可以看到我创建的模型
public class Employee
{
public int id { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
public int Deptid { get; set; }
}
这是我的另一个模型部门
public class Department
{
[Key]
public int Deptid { get; set; }
public string Deptname { get; set; }
public List<Employee> Employees { get; set; }
}
我为Dbcontext 又创建了一个类
public class Employeecontext:DbContext<br>
{
public DbSet<Employee>Employees{get;set;}
public DbSet<Department>Departments{get;set;}
}
如上所述,我有一个创建视图,我将从中收集数据并将其存储在Employees表中,但一个条件是,在下拉列表中,我将有部门名称,但我想将相应部门的deptid保存在表中。
提前感谢,如果没有提到什么或犯了任何错误,我是一个新手:p
您可以这样做:
public class Employee
{
public int id { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
public int Deptid { get; set; }
[ForeignKey("Deptid")]
public virtual Department Department { get; set; }
}
public class Department
{
[Key]
public int Deptid { get; set; }
public string Deptname { get; set; }
}
您不必包含部门中的员工列表,因为它只取决于部门。
为实体类尝试以下代码。你的db上下文类还可以。我已经在C#MVC4应用程序中测试了下面的模式,代码优先的方法没有任何问题。
public class Department
{
public Department()
{
List<Employee> EmployeeList = new List<Employee>();
}
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Deptid { get; set; }
public string Deptname { get; set; }
public virtual ICollection<Employee> Employees { get; set; }
}
public class Employee
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public string name { get; set; }
public int Salary { get; set; }
public int Deptid { get; set; }
[ForeignKey("Deptid ")]
public virtual Department department { get; set; }
}