我在SQL中有以下非常简单的查询:
select Sum(m.unitPrice * mtp.units) charges
from tbl_Medicines m, tbl_MedicineToPatient mtp
where m.medicineId = mtp.medicineId and mtp.patientId = 1001
我需要将此查询转换为Linq to Entities查询。我尝试了以下(我知道错了):
var varQuery = (from med in hmsdatabase.TblMedicines
join medtopat in hmsdatabase.TblMedicineToPatients
on med.MedicineId equals medtopat.MedicineId
let jjj = new { med, medtopat}
where medtopat.PatientId == 1001
select jjj.Sum(med.UnitPrice * medtopat.Units)
).First();
我知道这没有意义。任何形式的帮助表示赞赏。我找不到一个帖子,它有一个LINQ格式的查询,包含聚合函数,一个连接条件和两个不同表的字段上的(乘法)操作。
答案 0 :(得分:2)
应该只是
var total = (from med in hmsdatabase.TblMedicines
join medtopat in hmsdatabase.TblMedicineToPatients
on med.MedicineId equals medtopat.MedicineId
where medtopat.PatientId == 1001
select med.UnitPrice * medtopat.Units
).Sum();
请注意,这会返回单个值,而不是集合。