태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.
   情  
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,
        });
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

name    password    homepage
 hidden


 Category
분류 전체보기 (95)
Netwrok & Security (6)
Web Development (61)
Database (5)
Framework (6)
Others (17)
About (0)
 TAGS
WCF data tier maxRecievedMessageSize class id 차이 SourceSafe2005 리눅스 ie6 자바스크립트 버그 It's me 오라클 ASP php c#.net 영국 학원 linux DTD 특수문자 UpdateProgress exception id name 차이 smarty RFC 4180 ASP.NET 영국 인턴쉽 MS SQL Server Blog API ajax XML PHP 강좌 ATRIX mantis bug tracker mantis SourceSafe Internet Silverlight 오라클 구조 application error #401 web tier ebnf LiveMail 자바스크립트 영국 홈스테이
 Calendar
«   2017/06   »
        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 29 30  
 Visitor Statistics
Total : 241,119
Today : 2
Yesterday : 56
rss
 

티스토리 툴바