返回连接查询中的导航属性
本文关键字:导航 属性 连接 查询 返回 | 更新日期: 2023-09-27 18:17:31
在构建患者预约应用程序时,我需要返回具有导航属性patientDetails
的患者,而返回的sessionId
不是直接从患者推断出来的,而是从一系列其他导航属性推断出来的。这本身并不困难,就像普通的SQL连接可以使用,只是我的导航属性patientDetails
从未包括在内。
包含路径是正确的,以防有人问。
using (DbEntities db = new DbEntities())
{
List<tblPatient> res = (from s in db.tblSessions
join b in db.tblBookings on s.id equals b.sessionId
join r in db.tblReferrals on b.referralId equals r.id
join a in db.tblAttendanceStatus on b.attendanceStatus equals a.id
join p in db.tblPatients.Include("tblPatientDetail") on r.patientId equals p.id
join pd in db.tblPatientDetails on p.patientDetailsId equals pd.id
where s.id == id
select p).ToList();
return res;
}
是否包含.include
似乎没有区别。
我忽略了什么?
include在使用join
或group by
时被忽略。您可以将查询更改为使用where
而不是
List<tblPatient> res = (from p in db.tblPatients.Include("tblPatientDetail")
where
(from s in db.tblSessions
join b in db.tblBookings on s.id equals b.sessionId
join r in db.tblReferrals on b.referralId equals r.id
join a in db.tblAttendanceStatus on b.attendanceStatus equals a.id
where r.patientId == p.id
where s.id == id
select 1).Any()
select p).ToList()