태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
   情  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
Lambda Expression으로 Join사용하기

Lambda Expression에서 기본적인 Join은 다음과 같은 구분을 따릅니다. Key에 해당하는 정보가 양쪽 Table에 존재하는 경우에만 조회됩니다.

구문형식

var result = 
    sourceTable
    .Join
        <SourceTableType,
        JoinedTableType, 
        MappingKeyType, 
        ResultType>
        (joinedTables, 
        sourceTableParameter => sourceTableParameter.mappingKeyColumn, 
        joinedTableParameter => joinedTableParameter.mappingKeyColumn,
        (sourceTableParameter, joinedTableParameter) => new ResultType
        {
            ....
        });

예제

IEnummerable<StudentsInUniversity> result = 
    universities.Join
                <University, 
                Student, 
                long, 
                StudentsInUniversity>
                (students, 
                u => u.UniversityId, 
                s => s.UniversityId,
                (u, s) => new StudentsInUniversity
                {
                    StudentName = s.Name,
                    UniversityName = u.Name
                });
Left Outer Join은 다음과 같은 다른 구문을 가집니다.

구문형식

var result = 
    sourceTable
    .GroupJoin(joinedTable,
                sourceTableParameter => sourceTableParameter.mappingKeyColumn,
                joinedTableParameter => joinedTableParameter.mappingKeyColumn,
                (sourceTableParameter, joinedTableParameter) => new { sourceTable = sourceTableParameter, joinedTable = joinedTableParameter})
    .SelectMany(
        t  => t.joinedTable.DefaultIfEmpty(),
        (groupedList, joinedTalbe) => new
        {
            ....
        });

예제

IEnummerable<StudentsInUniversity> result = 
    universities
    .GroupJoin(students,
                u => u.UniversityId,
                s => s.UniversityId,
                (u, s) => new { universities = u, students = s })
    .SelectMany(
        t  => t.students.DefaultIfEmpty(),
        (grouped, s) => new StudentsInUniversity
        {
            UniversityName = grouped.unversities.Name,
            StudentName = s.Name,
        });

name    password    homepage
 hidden


 Category
분류 전체보기 (95)
Netwrok & Security (6)
Web Development (61)
Database (5)
Framework (6)
Others (17)
About (0)
 TAGS
WCF RFC 4180 ie6 자바스크립트 버그 ATRIX id name 차이 mantis bug tracker DTD 오라클 구조 linux Blog API smarty ASP.NET web tier 오라클 application error #401 UpdateProgress SourceSafe Internet exception ASP PHP 강좌 자바스크립트 XML 영국 인턴쉽 It's me php 리눅스 class id 차이 영국 학원 data tier Silverlight maxRecievedMessageSize ebnf 특수문자 LiveMail c#.net SourceSafe2005 ajax 영국 홈스테이 MS SQL Server mantis
 Calendar
«   2018/02   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28      
 Visitor Statistics
Total : 255,672
Today : 71
Yesterday : 73
rss
 

티스토리 툴바