o/r 디자이너 - linq 이용

28
C# O/R 디디디디 - LINQ 디디

Upload: rio

Post on 20-Feb-2016

143 views

Category:

Documents


1 download

DESCRIPTION

C#. O/R 디자이너 - LINQ 이용. LINQ. LINQ(Language INtegrated Query) ; 닷넷 프로레임워크 3.5 에서 지원하는 데이터 다루는 방법 언어에 독입적인 쿼리문 ; 언어 ( 쿼리 대상인 데이터 소스 , 쿼리 실행 언어 ) 쿼리 대상 : SQL 테이블 , XML 문서 , 오브젝트 , 텍스트파일  데이터 소스에 따라서 문법이 다름 ; 데이터 베이스 (SQL), XML( XPath ). LINQ. LINQ 범주 LINQ to Object - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: O/R  디자이너 -  LINQ  이용

C#O/R 디자이너 - LINQ 이용

Page 2: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

2 / 33

LINQ• LINQ(Language INtegrated Query)

; 닷넷 프로레임워크 3.5 에서 지원하는 데이터 다루는 방법

• 언어에 독입적인 쿼리문; 언어 ( 쿼리 대상인 데이터 소스 , 쿼리 실행 언어 )

• 쿼리 대상 : SQL 테이블 , XML 문서 , 오브젝트 , 텍스트파일 데이터 소스에 따라서 문법이 다름; 데이터 베이스 (SQL), XML(XPath)

Page 3: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

3 / 33

LINQ• LINQ 범주

▫LINQ to Object▫LINQ to DataSet▫LINQ to SQL▫LINQ to Entities▫LINQ to XML

Page 4: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

4 / 33

LINQ 의 위치

LINQ to Ob-ject

LINQ to Ob-ject

LINQ to Ob-ject

LINQ to Ob-ject

LINQ to Ob-ject

LINQ to ADO.NET

C#VB 언어 1

언어 2

RDBOb-ject

XML

Page 5: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

5 / 33

LINQ 의 장점• 간결한 구문으로 쿼리 방식을 간소화한다 . 꼭 필요한 지시 사항만

밝힘으로써 원하는 데이터를 간편하게 얻을 수 있다 .

• 데이터 소스에 상관없이 일관된 쿼리 문법이 적용된다 . 그 자체가 통합을 지향하고 있으므로 일관적이다 . 한번 배우면 똑같은 문법을 여러 대상에서 사용 가능하다 .

• 객체 지향적이다 . 관계형 데이터베이스는 객체 지향과 거리가 멀지만 LINQ 를 쓰면 객체 지향의 여러 가지 이점을 취할 수 있다 .

• 강력한 타입을 지원하며 모든 에러를 컴파일 중에 점검할 수 있어 개발 속도가 빨라지고 안정성도 확보된다 . 인텔리센스와 디버거의 도움도 받을 수 있다 .

Page 6: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

6 / 33

메모리 내의 컬렉션을 대상으로 LINQ 실습

Page 7: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

7 / 33

정수 배열 ar 에서 3 의 배수 출력

using System;using System.Collections.Generic;using System.Linq;

class CSTest{

static void Main(){int[] ar = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var Query = from n in ar where (n % 3 == 0) select n;

foreach (int k in Query){Console.WriteLine(k);}}

}

from 순회변수 in 데이터 소스

메모리 내의 컬렉션을 대상으로 LINQ 실습

Page 8: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

8 / 33

메모리 내의 컬렉션을 대상으로 LINQ 실습

using System;using System.Collections.Generic;using System.Linq;using System.IO;

class CSTest{

static void Main(){var Files = from f in Directory.GetFiles("c:\\") select f;foreach (var f in Files){Console.WriteLine(" 이름 : " + f);}}

}

파일 목록 출력

Page 9: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

9 / 33

메모리 내의 컬렉션을 대상으로 LINQ 실습

쿼리 표현식

fromwhereorderbylet

selectgroup

Page 10: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

10 / 33

메모리 내의 컬렉션을 대상으로 LINQ 실습

using System;using System.Collections.Generic;using System.Linq;

class People{

public People(string aName, int aAge, bool aMale){ Name = aName; Age = aAge; Male = aMale; }public string Name;public int Age;public bool Male;

}

class CSTest{

static void Main(){

People[] arPeople = { new People(" 정우성 ", 36, true), new People(" 고소영 ", 32, false) ,new People(" 배용준 ", 37, true), new People(" 김태희 ", 29, false) };

// IEnumerable<People> Query = from p in arPeople select p; // 아래 문장과 같은 결과var Query = from p in arPeople select p;

foreach (People k in Query){

Console.WriteLine(" 이름 : " + k.Name + ", 나이 : " + k.Age + ", 남자 : " + k.Male);

}}

}

Page 11: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

11 / 33

O/R 디자이너에서 LINQ 사용 예

Page 12: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

12 / 33

프로젝트 클릭

Page 13: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

13 / 33

1. Windows Forms 응용프로그램 선택2. 확인 클릭

Page 14: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

14 / 33

ListBox 드레그

Page 15: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

15 / 33

새 항목 클릭

Page 16: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

16 / 33

1. LINQ to SQL 클래스 선택2. 추가 클릭

Page 17: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

17 / 33

1. 추가된 클래스 확인

2. 엔터티 클래스 창 3. 메서드 창

Page 18: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

18 / 33

서버 탐색기 창 클릭

Page 19: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

19 / 33

테이블 드레그 (Address)

Page 20: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

20 / 33

1. DataClasses1.designer.cs 더블 클릭 후2. 자동 작성된 소스 확인 : Address 테이블 부분 )

Page 21: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

21 / 33

MSSMS 에서 저장 프로시저 만들기1. ADOTest 데이터베이스 클릭2. 새 쿼리 클릭3. 오른쪽 텍스트 카피하여 새 쿼리창에서 실행

CREATE PROCEDURE myProc AS SELECT * FROM Address WHERE Name = ' 홍길동 '; exec myProc ;

Page 22: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

22 / 33

저장 프로시저 (myProc) 를 메서드 창에 드레그비쥬얼 스튜디오 창

Page 23: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

23 / 33

1. DataClasses1.designer.cs 더블 클릭2. 생성된 저장 프로시저 (dbo.myPorc 부분 ) 확인

Page 24: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

24 / 33

1. Forms1.cs 더블 클릭2. 윈도우 폼 더블 클릭

Page 25: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

25 / 33

1. 아래 내용 코딩 입력( 다음 페이지 )

Page 26: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

26 / 33

DataClasses1DataContext db = new DataClasses1DataContext(); System.Data.Linq.Table<Address> Address =

db.GetTable<Address>();

var Query = from A in Address select A; foreach (Address k in Query) { listBox1.Items.Add(string.Format(" 이름 : " + k.name + ", 주소 : " +

k.addr)); } db.myProc();

코딩할 내용

Page 27: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

27 / 33

디버깅하지 않고 시작 클릭

Page 28: O/R  디자이너 -  LINQ  이용

c#

O/R 디자이너

28 / 33