我正在尝试查询3级表ef_staff表3次,以获得每行3个diff人员对象。如何在LINQ中翻译?
SELECT a.a_appraisalid, a.a_year, c.s_staffName, c2.s_staffName, c3.s_staffName
FROM ef_appraisal a, idp_application b, ef_staff c, ef_staff c2, ef_staff c3
WHERE a.a_appraisalid = b.a_appraisalid AND
a.a_staffid = c.s_staffid AND
a.a_appraisedby = c2.s_staffid AND
a.a_reviewedby = c3.s_staffid
我一直在尝试很多方法但是在第二个和第二个方面仍然存在“类型推断失败”的错误。第3次参加工作人员。我在这里缺少什么?
from application in applications
join appraisal in pmsEntities.ef_appraisal on application.a_appraisalid equals appraisal.a_appraisalid
join staff in pmsEntities.ef_staff on appraisal.a_staffid equals staff.s_staffid
join appraiser in pmsEntities.ef_staff on staff.s_appraisedby equals appraiser.s_staffid into ap
from appraiser in ap.DefaultIfEmpty()
join reviewer in pmsEntities.ef_staff on staff.s_reviewedby equals reviewer.s_staffid into rv
from reviewer in rv.DefaultIfEmpty()
join company in pmsEntities.ef_company on appraisal.a_companyid equals company.c_companyid into jc
from company in jc.DefaultIfEmpty()
select appraisal, staff.staffName, appraiser.staffName, reviewer.staffName, company.compName
答案 0 :(得分:1)
我修正了错误。员工对象的第一级连接应该链接到第二级员工对象,如下所示:
join staff in pmsEntities.ef_staff on appraisal.a_staffid equals staff.s_staffid into staffj
from staff1 in staffj
join appraiser in pmsEntities.ef_staff on staff1.s_appraisedby equals appraiser.s_icno into staff2
`
希望有所帮助