*
在一个项目当中,基本上每个页面都需要查询数据吧?那么怎样实现它呢,今天,就让我们来学习一下多表查询吧。关于多表查询,自然的我们就想到了数据库里面的多表查询,在数据库里的查询里其实跟MVC里的查询很类似。
数据库的查询:
SELECT 列名称 FROM 表名称;
举例:
MVC的查询:
当然,如果是多表的话,就在from下面先把表与表之间的关系连接起来,后面在Select出你需要的字段。就比如下面的例子:
public ActionResult SeacherCheck(LayuiTablePage layuiTablePage, int MedMesID)
{
var listEntry = from tbMedHouseDetail in myModels.SYS_MedHouseDetail
join tbMedMes in myModels.SYS_MedMes on
tbMedHouseDetail.MedMesIDequals tbMedMes.MedMesID
join tbManufacturer in myModels.SYS_Manufacturer on
tbMedMes.ManufacturerIDequals tbManufacturer.ManufacturerID
join tbMedHouse in myModels.SYS_MedHouse on
tbMedHouseDetail.MedHouseIDequals tbMedHouse.MedHouseID
orderby tbMedHouseDetail.MedHouseDatileID descending
select new Apply
{
MedMesID = tbMedMes.MedMesID,
MedHouseDatileID = tbMedHouseDetail.MedHouseDatileID,
ManufacturerID = tbManufacturer.ManufacturerID,
MedName = tbMedMes.MedName,
Repertory = tbMedHouseDetail.Repertory,
MedicineUnit = tbMedMes.MedicineUnit,
MedicineSpecificat = tbMedMes.MedicineSpecificat,
MedicineDate = tbMedMes.MedicineDate,
MedicineValidity = tbMedMes.MedicineValidity,
MedHouseName = tbMedHouse.MedHouseName,
ManufacturerName = tbManufacturer.ManufacturerName
};
var intTotalRow = listReturn.Count();
List<Apply> list =
listReturn.Skip(layuiTablePage.GetStartIndex()).Take(layuiTablePage.limit).ToList();
//调用分页封装类
LayuiTableData<Apply> layuiTableDate = new LayuiTableData<Apply>();
layuiTableDate.count = intTotalRow; //行总数
layuiTableDate.data = list; //具体显示数据
return Json(layuiTableDate, JsonRequestBehavior.AllowGet);
}
*
既然有多表,那么就可能逃不掉它可能会出现条件筛选,下面就是条件筛选的代码,但是在写条件筛选的时候不要忘记给它一个参数,在传输页面值的时候,链接也不要用URL模式,一定要换成data模式(限定在使用Layui表格时)
if (MedMesID > 0)
{
istReturn = listReturn.Where(m => m.MedMesID == MedMesID);
}