1 / 28

O/R 디자이너 - LINQ 이용

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

rio
Download Presentation

O/R 디자이너 - LINQ 이용

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 LINQ to Object LINQ to Object LINQ to Object LINQ to Object LINQ to Object Object RDB XML

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

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

  7. 메모리 내의 컬렉션을 대상으로 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, intaAge, boolaMale) { 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. 디버깅하지 않고 시작 클릭

More Related