具有聚合函数和连接条件的LINQ查询

本文关键字:条件 LINQ 查询 连接 函数 | 更新日期: 2023-09-27 18:01:42

我有以下非常简单的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到实体查询。我尝试了以下方法(我知道这是错误的):

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格式,包含聚合函数,连接条件和(乘法)操作对两个不同的表的字段。

具有聚合函数和连接条件的LINQ查询

应该是

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();