나는 다음과 같은 한 테이블여러 엔티티 프레임 워크에 쿼리를 결합
작업
ID | 이름 | proj_id
1 | task1 | 1
2 | task2 | 1
3 | task3 | 1
프로젝트
id | 이름
1 | 샘플 proj1
2 | 데모 프로젝트
budget_versions
id | version_name | proj_id
1 | 50 | 1
예산
id | 비용 | budget_version_id | task_id
1 | 3000 | 1 | 2
2 | 5000 | 1 | | 1
내가 엔티티 프레임 워크를
TASK_ID을 사용하여 다음과 같은 결과를 얻을이 테이블에 가입해야 task_name | project_id | budget_version | budget_id | 비용
1 | task1 | 1 | 1 | 2 | 5000
2 | task2 | 1 | 1 | 1 | 3000
3 | task3 | 1 | NULL | NULL | NULL
선택 tsk.id, tsk.name, tsk.project_id, bgtver.id, bgt.id, 작업 쯧에서 bgt.cost 왼쪽 외부는 tsk.project_id = bgtver.project_id에 bgtver BUDGET_VERSIONS 가입 왼쪽 외부는 bgtver.id = bgt.budget_version_id 및 tsk.id = bgt.task_id 에 예산 BGT 에 참여할 경우 bgtver.id = 1
이 내가
var에 budgetlists = _worker 지금까지 시도한 것입니다 .Budgets.Get(). GroupJoin (_worker.BudgetVersions.Get(), rb => rb.budget_version_id, rbv => rbv.id, (rb, rbrbv) => 새로운 {rb, rbrbv}) SelectJany ( @t => @ t.rbrbv.DefaultIfEmpty()). SelectMany ( @p => @ p.tskrb.DefaultIfEmpty (rbrbv, tskrb) => tsk.id, tsk.id, (rbrbv, tskrb) => 새로운 {rbrbv, tskrb}());
http://stackoverflow.com/questions/21051612/entity-framework-join-3-tables –