나는 두 개의 테이블, LP_task 테이블과 lp_Update 테이블을 가지고 있습니다. 특정 날짜 범위 동안 게시 된 작업의 전체 목록과 업데이트 만 필요합니다. LINQ는 다른 조인 기준을 지원하는 것처럼 보이지 않지만 각 작업과 '동일'합니다. 업데이트가없는 경우에도 모든 작업 (왼쪽 표)을 원합니다. (왼쪽 외부 조인)LINQ Left Outer Join (오른쪽 테이블의 날짜 범위 제한 있음)?
Dim TasksData = (From t In db.LP_Tasks _
Group Join up In db.LP_Updates On t.ID Equals up.TaskID Into upds = Group _
From u In upds.DefaultIfEmpty _
Order By t.TaskOrder, t.TaskNote, u.DateCreated Descending _
Select New With {t.ID, t.TaskNote, u.UpdateNote, u.DateCreated})
이것은 모든 LP_tasks와 해당 LP_updates를 잡는 데 유용합니다. 사용 가능한 업데이트가 없으면 작업을 반환합니다 (왼쪽 외부 조인)
이제 특정 날짜 범위의 업데이트로 업데이트를 제한하려고합니다. 업데이트를 포함했지만 날짜 요구 사항을 충족하지 못하는 모든 작업을 왼쪽에서 제거하지 않고이 작업을 수행하는 방법을 알 수 없습니다. 어떤 WHERE 절도 upds.DefaultIfEmpty 후에 추가합니다. 여기에서 무엇을해야할지 모르겠습니다.
완료 형! 나는 LINQ의 핵심 기능 중 하나를 무시한다는 어리 석을 느낀다. 또한 람다 표현 형식을 보여 주셔서 감사합니다, 나는 VB.NET에서 사람들을 너무 많이 보지 않습니다. – TheDPQ