一.数据库前提
两张表的字段条数相同
两张表的数据类型相同
二.关系如下 :医嘱明细表里字段医嘱项目ID,它代表药品id和检查项目id然后通过医嘱明细表里的字段医嘱项目类型用枚举的方式来区分,1为药品2为检查项目。合并表要用到Union,同时要建一个实体类让它们在控制器的名称和实体类的相同。
控制器代码:
public ActionResult DoctorManagetion(LayuiTablePage layuiTablePage)
{
//1、连接药品
var listDrug = (from tbDoctoradvice
in myModels.B_Doctoradvice
join tbChekin in
myModels.B_Checkin on tbDoctoradvice.CheckinID equals tbChekin.CheckinID
join
tbDoctoradviceDtail in myModels.B_DoctoradviceDetail on
tbDoctoradvice.DoctoradviceID equals tbDoctoradviceDtail.DoctoradviceID
join tbDrug in myModels.B_Drug
on tbDoctoradviceDtail.DoctoradviceItemID equals tbDrug.DrugID
join tbPharemacy in
myModels.B_Pharemacy on tbDrug.PharemacyID equals tbPharemacy.PharemacyID
where
tbDoctoradviceDtail.DoctoradviceType == 1
select new
DoctoradviceVo
{
DoctoradviceDetailID =
tbDoctoradviceDtail.DoctoradviceDetailID,
DoctoradviceItemID =
tbDrug.DrugID,
PharemacyID =
tbPharemacy.PharemacyID,
DrugNumber = tbDrug.DrugNumber,
DrugName = tbDrug.DrugName,
Specification =
tbDrug.Specification,
Frequency = tbDrug.Frequency,
Pharemacy = tbPharemacy.Pharemacy,
Uselevel =
tbDoctoradviceDtail.Uselevel,
StartEnjointime =
tbDoctoradviceDtail.StartEnjointime,
StopEnjointime =
tbDoctoradviceDtail.StopEnjointime,
LongTypeNo=tbDoctoradviceDtail.LongTypeNo
}).ToList();
//2、连接检查项目
var listItem = (from tbDoctoradvice
in myModels.B_Doctoradvice
join tbChekin in
myModels.B_Checkin on tbDoctoradvice.CheckinID equals tbChekin.CheckinID
join
tbDoctoradviceDtail in myModels.B_DoctoradviceDetail on
tbDoctoradvice.DoctoradviceID equals tbDoctoradviceDtail.DoctoradviceID
join tbItem in
myModels.B_Item on tbDoctoradviceDtail.DoctoradviceItemID equals tbItem.ItemID
join tbPharemacy in
myModels.B_Pharemacy on tbItem.PharemacyID equals tbPharemacy.PharemacyID
where
tbDoctoradviceDtail.DoctoradviceType == 2
select new
DoctoradviceVo
{
DoctoradviceDetailID =
tbDoctoradviceDtail.DoctoradviceDetailID,
DoctoradviceItemID =
tbItem.ItemID,
PharemacyID = tbPharemacy.PharemacyID,
DrugNumber =
tbItem.ItemNumber,
DrugName = tbItem.Item,
Specification =
tbItem.specification,
Frequency = tbItem.frequency,
Pharemacy =
tbPharemacy.Pharemacy,
Uselevel =
tbDoctoradviceDtail.Uselevel,
StartEnjointime =
tbDoctoradviceDtail.StartEnjointime,
StopEnjointime =
tbDoctoradviceDtail.StopEnjointime,
LongTypeNo=tbDoctoradviceDtail.LongTypeNo
}).ToList();
IEnumerable<DoctoradviceVo> intsResult
= listDrug.Union(listItem);//合并表关键
//总条数
var intTotalRow = intsResult.Count();
//分页
List<DoctoradviceVo> list = intsResult
.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit)
.ToList();
//调用分页封装类
LayuiTableData<DoctoradviceVo>
layuiTableData =
New LayuiTableData<DoctoradviceVo>();
layuiTableData.count
= intTotalRow;
layuiTableData.data = list;
return
Json(layuiTableData, JsonRequestBehavior.AllowGet);
}