Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "C# O/R 디자이너- LINQ 이용."— Presentation transcript:

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

2 LINQ LINQ(Language INtegrated Query) ; 닷넷 프로레임워크 3.5에서 지원하는 데이터 다루는 방법
언어에 독입적인 쿼리문 ; 언어(쿼리 대상인 데이터 소스, 쿼리 실행 언어) 쿼리 대상 : SQL 테이블, XML 문서, 오브젝트, 텍스트파일  데이 터 소스에 따라서 문법이 다름 ; 데이터 베이스 (SQL), XML(XPath)

3 LINQ LINQ 범주 LINQ to Object LINQ to DataSet LINQ to SQL
LINQ to Entities LINQ to XML

4 LINQ의 위치 언어1 VB C# 언어2 LINQ to ADO.NET Object RDB XML LINQ to Object

5 LINQ의 장점 간결한 구문으로 쿼리 방식을 간소화한다. 꼭 필요한 지시 사항만 밝힘으로써 원하는 데이터를 간편하게 얻을 수 있다. 데이터 소스에 상관없이 일관된 쿼리 문법이 적용된다. 그 자체가 통합을 지향하고 있으므로 일관적이다. 한번 배우면 똑같은 문법을 여러 대상에서 사용 가능하다. 객체 지향적이다. 관계형 데이터베이스는 객체 지향과 거리가 멀지 만 LINQ 를 쓰면 객체 지향의 여러 가지 이점을 취할 수 있다. 강력한 타입을 지원하며 모든 에러를 컴파일 중에 점검할 수 있어 개발 속도가 빨라지고 안정성도 확보된다. 인텔리센스와 디버거의 도움도 받을 수 있다.

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

7 정수 배열 ar 에서 3의 배수 출력 from 순회변수 in 데이터 소스
메모리 내의 컬렉션을 대상으로 LINQ 실습 정수 배열 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 데이터 소스

8 메모리 내의 컬렉션을 대상으로 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); }

9 메모리 내의 컬렉션을 대상으로 LINQ 실습 쿼리 표현식 where orderby let select group from

10 메모리 내의 컬렉션을 대상으로 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);

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

12 프로젝트 클릭

13 Windows Forms 응용프로그램 선택
확인 클릭

14 ListBox 드레그

15 새 항목 클릭

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

17 1. 추가된 클래스 확인 2. 엔터티 클래스 창 3. 메서드 창

18 서버 탐색기 창 클릭

19 테이블 드레그(Address)

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

21 MSSMS 에서 저장 프로시저 만들기 ADOTest 데이터베이스 클릭 새 쿼리 클릭 오른쪽 텍스트 카피하여 새 쿼리창에서 실행
오른쪽 텍스트 카피하여 새 쿼리창에서 실행 CREATE PROCEDURE myProc AS SELECT * FROM Address WHERE Name = '홍길동'; exec myProc ;

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

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

24 Forms1.cs 더블 클릭 윈도우 폼 더블 클릭

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

26 코딩할 내용 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();

27 디버깅하지 않고 시작 클릭

28


Download ppt "C# O/R 디자이너- LINQ 이용."

Similar presentations


Ads by Google