首页 > 解决方案 > c# linq 根据第一个表 id 和 group by 的顺序连接多个表

问题描述

我想根据左连接 c# linq 中的第一个表进行排序

我有 3 张表 TDoctorAppointments TDoctors TDoctor_Clinic

左加入 TDoctorAppointments 并按 TDoctorAppointment_TDoctorID_DID 的第一个分组

直到现在我得到了这个查询成功,但是没有维护 TDoctorAppointment_TDoctorID_DID 的顺序。

我想在 TDoctorAppointment_TDoctorID_DID 上订购结果

这是我的代码

var list2 = (from d in db.TDoctorAppointments
                             orderby d.TDoctorAppointment_TDoctorID_DID
                             join dcs in db.TDoctors on d.TDoctorAppointment_TDoctorID_DID equals dcs.TDoctor_DID
                             into dcs1
                             from dcs2 in dcs1.DefaultIfEmpty()
                             join doc1 in db.TDoctor_Clinic on d.TDoctorAppointment_TDoctorID_DID equals doc1.TDoctor_Clinic_DID
                             into doc2
                             from doc3 in doc2.DefaultIfEmpty()
                             where d.TDoctorAppointment_Tpatient_PID == patData
                             select new
                             {
                                 DID = d.TDoctorAppointment_TDoctorID_DID,
                                 Name = dcs2.TDoctor_FirstName,
                                 Latitude = doc3.TDoctor_Clinic_Latitude,
                                 Longitude = doc3.TDoctor_Clinic_Longitude
                             }).ToList();
var firs1 = list2.GroupBy(g => g.DID).Select(s => s.First());

(我知道代码格式不好:p)

谢谢 :)

标签: c#linqjoinleft-joinsql-order-by

解决方案


推荐阅读