多表查询
写好了数据库,建好了表,然后把数据库引入到Visual Studio 2015中
我们为了实现一些功能,靠数据库单单的一个表是完成不了的,所以我们就要连表,连接多张表来实现我们需要的功能
数据表格的数据查询
为了把下面的这些数据查询出来,一张表是不行了,要多张表连接起来,才能把下面这些数据给全部查出来
建一个实体类studentVo继承这张表
PW_Student这有只有外键ID AcademeID,而我们需要的是AcademeName,引用了studentVo就可以查询AcademeName 这些已经些写在studentVo里面的
方法名为selectStudentAll
LayuiTablePage是为了分页封装好了的方法,查询出来数据太多了的话,如果不分页就不怎么好看
public ActionResult selectStudentAll(LayuiTablePage layuiTablePage)
{
List<student> listStudent =
//给PW_Student起名为tbStudent,从tbStudent查
(from tbStudent in myModels.PW_Student
// join 连接表,给SYS_Academe起名为tbAcademe,用tbStudent这张表的外键ID AcademeID连接tbAcademe这张表的主键ID AcademeID
Join tbAcademe in myModels.SYS_Academe on tbStudent.AcademeID equals tbAcademe.AcademeID
// join 连接表,给SYS_Specialty起名为tbSpecialty,用tbStudent这张表的外键ID SpecialtyID连接tbSpecialty这张表的主键ID SpecialtyID
join tbSpecialty in myModels.SYS_Specialty on tbStudent.SpecialtyID equals tbSpecialty.SpecialtyID
// join 连接表,给SYS_Grade起名为tbGrade,用tbStudent这张表的外键ID GradeID连接tbGrade这张表的主键ID GradeID
join tbGrade in myModels.SYS_Grade on tbStudent.GradeID equals tbGrade.GradeID
// join 连接表,给SYS_Class起名为tbClass,用tbStudent这张表的外键ID ClassID连接tbClass这张表的主键ID ClassID
join tbClass in myModels.SYS_Class on tbStudent.ClassID equals tbClass.ClassID
//join 连接表,给PW_Use起名为tbClass,用tbStudent这张表的外键ID UserID连接tbUser这张表的主键ID UserID
join tbUser in myModels.PW_User on tbStudent.UserID equals tbUser.UserID
//排序 根据tbStudent的studentID 倒序排序
orderby tbStudent.studentID descending
select new studentVo
{
//查studentID ,从tbStudent这张表里查studentID
studentID = tbStudent.studentID,
//查UserID,从tbUser这张表里查UserID
UserID = tbUser.UserID,
//查StudentNumber,从tbStudent这张表里查StudentNumber
StudentNumber = tbStudent.StudentNumber,
//查StudentName,从tbStudent这张表里查StudentName
StudentName = tbStudent.StudentName,
//查StudentIDNum,从tbStudent这张表里查StudentIDNum
StudentIDNum = tbStudent.StudentIDNum,
//查StudentSex,从tbStudent这张表里查StudentSex
StudentSex = tbStudent.StudentSex,
//查AcademeName,从tbAcademe这张表里查AcademeName
AcademeName = tbAcademe.AcademeName,
//查SpecialtyName,从tbSpecialty这张表里查SpecialtyName
SpecialtyName = tbSpecialty.SpecialtyName,
//查GradeName,从tbGrade这张表里查GradeName
GradeName = tbGrade.GradeName,
//查ClassName,从tbClass这张表里查ClassName
ClassName = tbClass.ClassName,
//查UserNuber,从这张表里查UserNuber
UserNuber = tbUser.UserNuber
}).ToList();
//计算数据总条数
int totalRow = listStudent.Count();
//分页数据
List<studentVo> dbStudent = listStudent
.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit)
.ToList();
//实例化
LayuiTableData<studentVo> layuiTableData = new LayuiTableData<studentVo>();
//总数
layuiTableData.count = totalRow;
//分页总数据
layuiTableData.data = dbStudent;
//把总数和分页总数据返回到页面
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
}
查询出来的显示在页面上的数据