複数の左結合を持つLINQクエリでは、ヘルプが必要です。 LINQ to EF4です。私はSQLを書いて、LINQの 'join'が内部結合であることを知らずにLINQに変換しました。私はすべての例を見てきましたが、残っているのは1つの例だけです。どんな助けでも大歓迎です!ここでLINQクエリでの複数の左結合C#
は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
}
http://codingsense.wordpress.com/2009/03/08/left-join-right-join-using-linq/ - あなたが助けてくれることを願っています – sinanakyazici
また、正しく設定した場合、LinqPadもダウンロードしています現在持っているものに基づいてlinqクエリを生成することができます。 – MethodMan
私はLinqPadを使用して上記のLINQクエリを作成しました。私はLinqPadがSQLを取ってlinqに変換できるとは思わない。 – EFX