0

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

4

1 回答 1

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

请注意,这将返回单个值,而不是集合。

于 2013-02-28T22:07:54.380 回答