我有两张表department
和teacher
,如下所示:
Department
表(DeptID
是主键)
DeptID | DeptName
1 P
2 C
3 M
Teacher
表(DeptID
是外键)
DeptID | TeacherName
1 ABC
1 PQR
2 XYZ
我使用数据库第一种方法从这两个表中创建单个模型。我想在一个视图中显示这两个细节:
TeacherName | DeptName
ABC P
PQR P
XYZ C
我尝试使用脚手架创建控制器,但它会为模型中的单个表提供视图和CRUD操作。
是否有任何方法可以将这两个表一起映射到一个视图中?当我为数据库中的每个表使用不同的模型时,是否可以(很容易实现)?
答案 0 :(得分:1)
您必须创建Viewmodel。
public class DepartmentTeacher
{
public int DeptID {get;set;}
public string DeptName {get;set;}
public int TeachID {get;set;}
public string TeachName {get;set;}
}
using (var db = new SchoolContext())
{
var query = (from tc in db.Teacher
join dp in db.Department on tc.DeptID equals dp.DeptID
//where st.STUDENT_ID == Customer_Id maybe you need
select new
{
dp.DeptName,
tc.TeachName
});
foreach (var item in query)
{
DepartmentTeacher.DeptName = item.DeptName;
DepartmentTeacher.TeachName = item.TeachName;
}
}
return View(DepartmentTeacher);
您可以使用此视图模型的每个进程。但是,您必须在视图页面上描述此Viewmodel。