Upload
rio
View
143
Download
1
Embed Size (px)
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
Citation preview
C#O/R 디자이너 - LINQ 이용
c#
O/R 디자이너
2 / 33
LINQ• LINQ(Language INtegrated Query)
; 닷넷 프로레임워크 3.5 에서 지원하는 데이터 다루는 방법
• 언어에 독입적인 쿼리문; 언어 ( 쿼리 대상인 데이터 소스 , 쿼리 실행 언어 )
• 쿼리 대상 : SQL 테이블 , XML 문서 , 오브젝트 , 텍스트파일 데이터 소스에 따라서 문법이 다름; 데이터 베이스 (SQL), XML(XPath)
c#
O/R 디자이너
3 / 33
LINQ• LINQ 범주
▫LINQ to Object▫LINQ to DataSet▫LINQ to SQL▫LINQ to Entities▫LINQ to XML
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
c#
O/R 디자이너
5 / 33
LINQ 의 장점• 간결한 구문으로 쿼리 방식을 간소화한다 . 꼭 필요한 지시 사항만
밝힘으로써 원하는 데이터를 간편하게 얻을 수 있다 .
• 데이터 소스에 상관없이 일관된 쿼리 문법이 적용된다 . 그 자체가 통합을 지향하고 있으므로 일관적이다 . 한번 배우면 똑같은 문법을 여러 대상에서 사용 가능하다 .
• 객체 지향적이다 . 관계형 데이터베이스는 객체 지향과 거리가 멀지만 LINQ 를 쓰면 객체 지향의 여러 가지 이점을 취할 수 있다 .
• 강력한 타입을 지원하며 모든 에러를 컴파일 중에 점검할 수 있어 개발 속도가 빨라지고 안정성도 확보된다 . 인텔리센스와 디버거의 도움도 받을 수 있다 .
c#
O/R 디자이너
6 / 33
메모리 내의 컬렉션을 대상으로 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 실습
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);}}
}
파일 목록 출력
c#
O/R 디자이너
9 / 33
메모리 내의 컬렉션을 대상으로 LINQ 실습
쿼리 표현식
fromwhereorderbylet
selectgroup
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);
}}
}
c#
O/R 디자이너
11 / 33
O/R 디자이너에서 LINQ 사용 예
c#
O/R 디자이너
12 / 33
프로젝트 클릭
c#
O/R 디자이너
13 / 33
1. Windows Forms 응용프로그램 선택2. 확인 클릭
c#
O/R 디자이너
14 / 33
ListBox 드레그
c#
O/R 디자이너
15 / 33
새 항목 클릭
c#
O/R 디자이너
16 / 33
1. LINQ to SQL 클래스 선택2. 추가 클릭
c#
O/R 디자이너
17 / 33
1. 추가된 클래스 확인
2. 엔터티 클래스 창 3. 메서드 창
c#
O/R 디자이너
18 / 33
서버 탐색기 창 클릭
c#
O/R 디자이너
19 / 33
테이블 드레그 (Address)
c#
O/R 디자이너
20 / 33
1. DataClasses1.designer.cs 더블 클릭 후2. 자동 작성된 소스 확인 : Address 테이블 부분 )
c#
O/R 디자이너
21 / 33
MSSMS 에서 저장 프로시저 만들기1. ADOTest 데이터베이스 클릭2. 새 쿼리 클릭3. 오른쪽 텍스트 카피하여 새 쿼리창에서 실행
CREATE PROCEDURE myProc AS SELECT * FROM Address WHERE Name = ' 홍길동 '; exec myProc ;
c#
O/R 디자이너
22 / 33
저장 프로시저 (myProc) 를 메서드 창에 드레그비쥬얼 스튜디오 창
c#
O/R 디자이너
23 / 33
1. DataClasses1.designer.cs 더블 클릭2. 생성된 저장 프로시저 (dbo.myPorc 부분 ) 확인
c#
O/R 디자이너
24 / 33
1. Forms1.cs 더블 클릭2. 윈도우 폼 더블 클릭
c#
O/R 디자이너
25 / 33
1. 아래 내용 코딩 입력( 다음 페이지 )
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();
코딩할 내용
c#
O/R 디자이너
27 / 33
디버깅하지 않고 시작 클릭
c#
O/R 디자이너
28 / 33