두 개의 목록이 있습니다. 첫 번째는 API (APITasks)에서 가져온 작업 목록이고, 두 번째는 로컬 SQL DB에있는 목록 작업입니다. 이 도구를 사용하면 사용자가 APITask를 "요청"하고 TaskIssueId를 저장하여 해당 클레임을 로컬에 기록 할 수 있습니다.LINQ의 OrderBy와 왼쪽 조인
때때로 APITask가 제거 될 수 있습니다. 내 도구에는 사용자가 "청구 된"모든 작업을 나열 할 때이를 알아 채고 사용자에게 언급하는 코드가 있습니다. 이제 내가 겪고있는 문제는 APITasks (다른 ID, 복잡하고 관련이없는 AnotherInternalId로 정렬 됨)를 통해 사용자의 작업이 정렬되고 더 이상 사용할 수없는 작업이 더 이상 표시되지 않는다는 것입니다. 예외 및 메시지 표시).
가 여기 내 SQL 쿼리입니다 :
myTasks = (from m in myTasksFiltered
join d in APITasks on m.TaskIssueId equals d.TaskIssueId
into joinedData
from d in joinedData.DefaultIfEmpty()
let index = (int?)d.AnotherInternalId ?? 0
orderby index
select m).ToList();
이 thread가 쿼리를 만드는 데 도움하지만 난 쿼리가 APITask에 존재하지 않는 로컬 작업에 도달 할 때 때문에 null 참조 예외 오류가 계속 d
가 null이된다 거기에서 모든 것이 폭발합니다.
그게 정확히 내가 찾고 있었던 것입니다! 감사! – LanFeusT
DefaultifEmpty 테이블에 동일한 값이 포함 된 경우 어떻게해야합니까? – gayan1991
@ gayan1991 발생한 특정 문제로 새로운 질문을하면 나와 다른 여러 사람들이 기꺼이 답변 해 드리겠습니다. – cadrell0