Presentation is loading. Please wait.

Presentation is loading. Please wait.

PPart 1: LINQ 이해하기 PPart 2: Lambda 표현 식과 확장 메서드 PPart 3: LINQ 확장 메서드 활용 CConclusion.

Similar presentations


Presentation on theme: "PPart 1: LINQ 이해하기 PPart 2: Lambda 표현 식과 확장 메서드 PPart 3: LINQ 확장 메서드 활용 CConclusion."— Presentation transcript:

1

2

3 PPart 1: LINQ 이해하기 PPart 2: Lambda 표현 식과 확장 메서드 PPart 3: LINQ 확장 메서드 활용 CConclusion

4 이 장에서는 LINQ 의 기본 기능 을 살펴봅니다.

5 LLanguage Integrated Query 의 줄임말 ..NET Framework 3.5 부터 공식적으로 지원 CC# 3.0, Visual Basic.NET 9.0 과 호환 TThird party IDE 의 경우 RemObjects Pascal v2.0 (Joyride) 이후 버전부터 호환

6 B e f o r e L I N Q ( S Q L ) A f t e r L I N Q ( S Q L )

7

8

9

10

11

12 SQL 문법  SQL 표준 문법을 기초로 T-SQL, PL/SQL 등의 확장이 존재 기능성  CREATE, READ, UPDATE, DELETE 실행 영역  응용프로그램과는 분리된 계층에서 실행 확장 가능성  DBMS 조회 이외의 기능으로는 확 장에 제한이 있음 LINQ 문법  프로그래밍 언어별 (C#, VB.NET, Delphi Prism 등 ) 로 확장 지원 기능성  READ (Provider 에 따라 Delta Create/Update/Delete 를 지원 ) 실행 영역  컴파일러가 해석을 하고 대응되는 코드를 MSIL 로 작성 확장 가능성  Custom LINQ Provider 작성으로 DBMS 外의 데이터 소스로 확장 가능

13 Pro*C 프로그래밍 언어  C/C++ 문법을 전제로 사용 처리 방식  Pro*C 전 처리기 처리 후 최종 소스 를 작성 (LEX/YACC 와 같은 방식 ) 대상 데이터 소스  Oracle DBMS 만을 고려하고 최적 화한 것이 특징 기능성  CREATE, READ, UPDATE, DELETE LINQ 프로그래밍 언어  LINQ 를 지원하는 모든 언어 (C#, VB.NET, Delphi Prism, …) 처리 방식  정규 문법의 일부로 통일되어 ASP.NET, CODEDOM 에서도 지원됨 대상 데이터 소스  DBMS 외의 다양한 데이터 소스를 선택하거나 추가 개발 가능 기능성  READ (Provider 에 따라 Delta Create/Update/Delete 를 지원 )

14 LINQ to Object LINQ to SQL LINQ to ADO.NET Data Entities

15 LINQ to Data Set LINQ to XML And Your Exclusive LINQ Providers

16

17 FROM Clause: FROM [A] IN [B]

18 LET Clause: LET [C] = [D]

19 WHERE Clause: WHERE [E]

20 ORDERBY Clause: ORDERBY [F] [G]

21 SELECT Clause: SELECT [H]

22 Step 1 사원 정보를 포함하는 컬렉션 작성 Step 2 기본 구문으로 자료를 선택하여 결과를 출력하기 Step 3 이름을 오름차순으로 정렬하여 결과를 출력 하기 Step 4 성이 “ 김 ” 씨인 사람들의 급여를 내림차순으로 정렬하여 결과를 출력하기

23 이 장에서는 Lambda Expression 과 Extension Method 에 대하여 살펴보기로 합니다.

24

25 Format #1 ( 식 람다 ): 매개 변수 => 스칼라 식 ; Format #2 ( 문 람다 ): 매개 변수 => { 변수 명 = 대입 식 ; … };

26 Comparison 대리자 : var x = (x, y) => x.CompareTo(y); Action 대리자 : var y = y => Console.WriteLine((y * y).ToString()); Func 대리자 : var z = (x, y) => { int z = (x + y) * (x – y); MyFunc(z); };

27 직접 형식 지정 가능 #1: var = (string x, string y) => x.CompareTo( y); 직접 형식 지정 가능 #2: var y = (int y) => y / y;

28 기존의 정적 메서드 의 특성 정적 메서드가 작용 할 대상 형식의 설정

29 외관과는 달리 실 제 형식에 속하는 멤버가 아님 정적 메서드로서 의 성격을 그대로 유지

30 NULL 참조에 대한 멤 버 메서드의 호출이 제한됨 정적 메서드이기 때 문에 NULL 참조에 대 해서도 호출이 가능

31 EExtension Method 의 선언과 참조는 별도로 구분된다. EExtension Method 가 정의된 Static Class 가 속한 네임스페이스를 코드 상에서 참조 uusing System.Linq;

32 public static class MyExtensions { public static string AsString(this int i) { return i.ToString(); } } // static 키워드와 this 키워드에 주목 !

33 EExtension Method 는 정적 클래스 위에서만 선언이 가능하다. EExtension Method 는 정적 메서드 형태여야 만 한다. 첫첫 번째 인자에 확장할 대상 형식에 해당되는 변수를 지정하고 this 키워드를 붙인다.

34 이 장에서는 Enumerable Type 에 대하여 구현된 Extension Method 의 활용법을 살펴봅니 다.

35 IEnumerableGetEnumerator For Each@LINQ?

36 AllAny ContainsSequenceEqual

37 CountMaxMin SumAverage

38 AggregateElementAtFirst LastSingle

39 DistinctExceptIntersect SkipTakeWhere

40 CastConcat DefaultIfEmptySelect

41 SelectManyGroupBy GroupJoinJoin

42 ReverseOrderByToArray ToDictionaryToListToLookup

43 간간단한 웹 기반 메모 패드 예제 사사용하는 데이터베이스 : Oracle 10g Express Edition 사사용하는 프레임워크 : ASP.NET MVC JJ-Query 를 이용한 클라이언트 UI

44 CChapter 1 에서는 LINQ 의 기본 사양과 관련 된 C# 3.0 의 기본 문법을 다루었습니다. CChapter 2 에서는 LINQ to SQL, LINQ to XML 에 대해서 살펴보기로 합니다. 감감사합니다.

45

46


Download ppt "PPart 1: LINQ 이해하기 PPart 2: Lambda 표현 식과 확장 메서드 PPart 3: LINQ 확장 메서드 활용 CConclusion."

Similar presentations


Ads by Google