2013-04-10 4 views
0

질문은 원래 게시물에서 진화되었으므로 결과를 확대하기 위해 별도의 질문을 추가했습니다.linq 문을 사용하여 올바른 데이터를 얻는 방법

원래의 퀘스트에 대한 답변을 들었지만 그렇게 할 때 새로운 문제가 발생하여 저를 곤란하게 만들었습니다. 원래 게시물보기 : LINQ beginner, table joining query for document version

문서 개정 시스템 용입니다. 그리고 우리는 두 개의 테이블을 사용하고 있습니다. 사용자가 새 문서를 만든 즉시 정보가 Document 테이블에 추가됩니다. 이 때 문서 테이블에는 0으로 설정된 리비전과 null로 설정된 dateApproved가 있습니다. 기본 키는 documentID입니다.

이제 사용자가 해당 문서를 편집하면 새 테이블 Version에 한 줄이 만들어집니다.

내가 승인해야하는 모든 문서 (정확히 Documents 테이블에만 2 행의 새로운 문서가 있고, 편집 된 1 개의 문서가 줄을 포함하고 있음)를 반환하는 Linq가 있습니다. 문서 및 Version).

var docs = db.IPACS_Document 
       .Where(x => x.dateApproved == null 
          || x.IPACS_Version.Any(y => y.dateApproved == null)); 

위 Linq를 올바르게 그러나 Documents 테이블의 라인과 Version 테이블이 문서에 대한 승인을 필요로하는 모든 3 문서를 식별한다. Document 테이블에서 정보를 반환하고 있습니다 (실제로 편집 된 항목에 대한 Version 테이블의 정보가 필요한 경우).

편집 된 문서에 대한 버전 테이블 정보를 반환하는 방법이 있습니까? 새로운 문서의 정보를 올바르게 반환합니다.

답변

1

IEnumerable.Union이 필요하지만 동일한 요소 유형에서만 작동합니다. VersionDocument의 두 가지 유형이 있습니다.

사용 방법은 this에 문의하십시오.

관련 문제