c# LINQ查询中的多个左连接

本文关键字:连接 LINQ 查询 | 更新日期: 2023-09-27 18:18:21

我需要一个有多个左连接的LINQ查询的帮助。这是LINQ到EF4。我编写了SQL并将其转换为LINQ,而不知道LINQ中的"连接"是内部连接。我已经找遍了所有的例子,但只能找到一个左连接的例子。任何帮助都非常感激!

SQL:

SELECT
    s.FirstName, s.LastName, s.StakeholderID, op.ParticipantID, op.SchoolID, oc.CycleNumber, 
    st.SessionTypeID, st.SessionDescription, CONVERT(varchar(10),os.SessionDt,101) AS SessionDTrr, 
    os.OSStatus, oee.EvaluatorID
FROM
    Stakeholders s LEFT JOIN ObservationParticipants op ON s.StakeholderID = op.StakeholderID
    LEFT JOIN ObservationEvaluateeEvaluators oee ON op.ParticipantID = oee.EvaluateID
    LEFT JOIN ObservationCycles oc ON oee.ObservationEvaluateeEvaluatorID = oc.ObservationEvaluateeEvaluatorID
    LEFT JOIN ObservationSessions os ON oc.ObservationCycleID = os.ObservationCycleID
    LEFT JOIN SessionTypes st ON os.SessionTypeID = st.SessionTypeID
WHERE 
    oee.EvaluatorID = evaluatorID

这是我转换上述语句的LINQ。我需要的是左连接。有人可以帮助转换连接在这个LINQ左连接?

from s in Stakeholders
join op in ObservationParticipants
on s.StakeholderID equals op.StakeholderID
join oee in ObservationEvaluateeEvaluators
on op.ParticipantID equals oee.EvaluateID
join oc in ObservationCycles
on oee.ObservationEvaluateeEvaluatorID equals oc.ObservationEvaluateeEvaluatorID
join os in ObservationSessions
on oc.ObservationCycleID equals os.ObservationCycleID
join st in SessionTypes
on os.SessionTypeID equals st.SessionTypeID
where oee.EvaluatorID == evaluatorID
select new { 
            s.FirstName, s.LastName, s.StakeholderID, 
            op.ParticipantID, op.SchoolID, oc.CycleNumber,
            st.SessionTypeID, st.SessionDescription, os.SessionDt,
            os.OSStatus
            }

c# LINQ查询中的多个左连接

看起来你是在混合技术。Linq查询对象,而SQL查询关系数据库。非常不同的东西。linq有不同的实现:从Linq到SQLEF查询语言XML链接链接到NH厨房水槽的Linq

每个linq提供程序将以不同的方式翻译查询,并且翻译将如何或在何处进行并不总是明显的。

在这种情况下,你需要告诉我们你正在使用什么linq提供程序,从那里我们可以帮助将SQL查询转换为linq2?声明。