왼쪽 외부 조인을 포함하는 SQL query
을 Linq
으로 변환하려고하지만 이상한 상황이 발생합니다.여러 개의 왼쪽 외부 조인을 사용하는 SQL에서 Linq 쿼리
내 SQL의 관련 부분은 다음과 같습니다
SELECT * FROM dbo.SessionDetails as sd
left outer join dbo.VoipDetails as vd on vd.SessionIdTime = sd.SessionIdTime and vd.SessionIdSeq = sd.SessionIdSeq
left outer join dbo.Gateways as fgw on vd.FromGatewayId = fgw.GatewayId
내 LINQ 쿼리는 지금까지입니다 : 그 The name 'vd' is not in scope on the left side of 'equals'. Consider swapping the expressions on either side of 'equals'.
그러나 말해 vd.FromGatewayId
에
var query = from sd in dbo.SessionDetails
join vd in dbo.VoipDetails on new { sd.SessionIdTime, sd.SessionIdSeq } equals new { vd.SessionIdTime, vd.SessionIdSeq } into sdvd
from v in sdvd.DefaultIfEmpty()
join fgw in dbo.Gateways on vd.FromGatewayId equals fgw.GatewayId into sdgw
from g in sdvd.DefaultIfEmpty()
select sd;
내가 오류 표시를 얻고, gw.GatewayId
으로면을 바꾸면 vd
과 gw
에 대해 동일한 오류 메시지가 표시됩니다. 누군가 올바른 구문을 제안 할 수 있습니까? 기본 구문을 삭제 한 후에 추가 할 여러 개의 왼쪽 조인이 있습니다.
나는 오해를 당할 수도 있지만, 왼쪽 외부 조인을 계속하기 위해서는'on v.FromGatewayId와 같아야합니다. fgw.Gateway는'sdgw.DefaultIfEmpty()'에서 g에서 sdgw로' sdvd.DefaultIfEmpty()'다시? – Black