LINQ 정리노트 (1)

2015. 6. 24. 15:52

LINQ (Language INterated Qeury)는 Microsoft사에서 개발한 ORM 프레임워크로 데이터베이스 뿐만 아니라 XML이나 심지어는 시스템 자원까지 객체로 표현되는 다양한 자원을 표준화된 프로그래밍 언어로 접근하기 위한 기술이다.

거침없이 배우는 LINQ - 10점
Fabrice Marguerie 외 지음, 이준석 옮김/지&선(지앤선)

먼저 LINQ의 구현에 도움이 되는 C# 3.0부터 지원하기 시작한 문법 내용을 살펴보도록 하겠다.

1. 로컬 변수의 암시적인 형 선언

C#은 엄격한 형(type)을 지원하지만 var 키워드를 통해 로컬 변수를 형선언 없이 사용할 수 있다. 하지만 초기화 식으로 형을 지정해야 한다는 점에서 VB.NET의 variant와는 다르다.

2. 객체와 컬렉션 초기화 함수 (object initializer)

별도의 초기화 코드를 작성하지 않고 초기화 함수를 이용하여 모든 객체를 초기화할 수 있다. 객체와 컬렉션의 초기화가 가능하며, 컬렉션의 경우 System.Collections.IEnumerable만 제대로 구현되어 있으면 다양한 종류의 컬렉션을 초기화할 수 있다.

3. 람다 표현식 (lambda expression)

C# 1.0부터 제공된 대리자는 C# 2.0에서 익명메서드를 통해 대리자를 다룰 수 있도록 개선되었다. C# 3.0에서는 람다 표현식을 사용하여 표현이 더욱 간단해졌다.

4. 확장 메서드 (extension method)

C# 3.0에서 지원되기 시작한 문법으로 IDE의 인텔리전트 기능을 활용할 수 있도록 해주며, 문법적으로 가독성이 높은 코드 작성이 가능하도록 해준다.

.NET Framework Class Library 확장 메서드인 Where(), OrderByDescending(), Select() 등을 연쇄사용(chaining)이나 파이프라인(pipeline) 패턴을 적용하여 문법적으로  편리하게 사용할 수 있도록 지원한다.

5. 익명형 (anonymous type)

정보를 간단히 객체화해 저장할 경우 임시 저장 목적을 위해 특정형을 정의하고 사용하는 번거로움을 줄여준다.



실습을 위해 Northwind 샘플 데이터베이스를 다운받아 압축을 푼다.

Northwind 샘플 내려받기

MS-SQL이 설치되었들 경우 (MS-SQL 2008 R2 - Express Edition 설치) SQL Server Management Studio를 이용하여 내려받은 Northwind.bak 파일을 복원한다.


+ Recent posts