2011-10-13 3 views
0

나는 다음과 같은 SQL 쿼리가 있습니다반환 널

var trainingsiteinfo = (from c in db.ProgramLocations 
         from n in db.Registrations 
         from l in db.Participants 
         from h in db.Locations 
         where c.LocationID == h.LocationID 
          && c.ProgramID == n.ProgramID 
          && n.ParticipantID == l.ParticipantId 
         select new { 
          h.TrainingSite, 
          l.BackgroundTrainingID }).Distinct(); 

SQL 쿼리는 잘하지만 LINQ 작동합니다

SELECT DISTINCT 
    Participant.BackgroundTrainingID, 
    Location.TrainingSite 
FROM Registration, ProgramLocation, Participant, Program, Location 
WHERE ProgramLocation.LocationID = Location.LocationID 
    AND ProgramLocation.ProgramID=Registration.ProgramID 
    AND Registration.ParticipantID=Participant.ParticipantId 

내가 위의 쿼리와 일치하는 SQL에 다음 LINQ를 썼다을 null를 항상 돌려줍니다.

+1

"null을 반환하는"것은 무엇을 의미합니까? 'Distinct'는'null'을 반환하지 않습니다. 그러나 빈 열거 형을 반환 할 수 있으며 코드가 'NullReferenceException'을 throw 할 수 있습니다. 그 중 하나를 의미 했습니까? –

+0

테스트 할 때 내 디버깅 부분이 올바르지 않았다고 생각하지만 도움을 주신 덕분에 수정되었습니다 –

답변

0

내가 그것을 변환 작업을 가속화 Aswell :-) 아이디어 나갈 때 나는 Linqer http://www.sqltolinq.com/를 사용 닫히지 않은} 브래킷이 있습니다.

0

결과를 바인딩하기 전에 db 컨텍스트가 범위를 벗어나지 않았는지 확인하십시오. .Distinct() 다음에 .ToList()을 추가하여 결과를 열심히로드하도록 테스트 할 수 있습니다.

+0

감사합니다. –