728x90
AsEnumerable Method
- LINQ 쿼리는 IEnumerable<T> 또는 IQueryable 인터페이스를 구현하는 데이터 원본에서 작동한다. DataTable 클래스는 이 인터페이스를 구현하지 않기 때문에 직접 LINQ 쿼리를 사용할 수 없다.
- AsEnumerable 메서드를 사용하여 Datatable을 IEnumerable<T>로 변환할 수 있다. 변환된 객체는 원본 DataTable에 바인딩 된다. 따라서 AsEnumerable를 여러 번 호출해도 모두 같은 원본 DataTable에 바인딩된 독립적인 쿼리 가능한 객체를 반환한다.
- DataTable을 LINQ 쿼리의 원본으로 사용하려면 AsEnumerable 메서드를 사용하여 IEnumerable<T>로 변환해야 한다. 이렇게 변환된 객체는 원본 DataTable에 바인딩되며, 여러번 변환해도 각각 독립적인 쿼리를 수행할 수 있다.
LINQ(Language Integrated Query)
- C#과 같은 .NET 언어에서 데이터 소스에 대한 쿼리를 쉽게 작성하고 실행할 수 있도록 하는 기능이다. LINQ는 SQL 쿼리와 유사한 문법을 사용하여 컬렉션, XML, 데이터베이스, 객체, 그리고 기타 데이터 소스에 대해 쿼리를 작성할 수 있다.
- LINQ의 쿼리 식과 메서드 체이닝 문법을 통해 데이터를 필터링, 투영, 정렬, 그룹화, 조인, 집계 등의 다양한 연산을 수행할 수 있다. LINQ를 통해 코드의 가독성을 높이고 복잡한 데이터 처리 로직을 간결하게 작성할 수 있다.
LINQ의 주요 구성 요소
- LINQ to Object
- 메모리에 있는 객체 컬렉션(ex: 배열, 리스트)에 대해 쿼리를 수행할 수 있다.
- LINQ to SQL
- SQL Server 데이터베이스에 대해 쿼리를 수행할 수 있다.
- LINQ to XML
- XML 데이터에 대해 쿼리를 수행할 수 있다.
- LINQ TO Entities
- Entity Framework를 사용하여 데이터베이스에 대해 쿼리를 수행할 수 있다.
기본 문법
- LINQ 쿼리는 두 가지 문법 스타일을 지원한다.
- 쿼리 식(Query Syntax)
- SQL과 유사한 문법
- 메서드 체이닝(Method Syntax)
- 메서드 체이닝을 이용한 문법
728x90
'언어 > C#' 카테고리의 다른 글
ConcurrentDictionary<TKey, TValue> (0) | 2024.08.01 |
---|---|
Select, Where, OrderBy, List.Find(All) (0) | 2024.07.31 |
ConstainsKey, AddOrUpdate 메서드, Stopwatch (0) | 2024.07.31 |
SocketAsyncEventArgs (0) | 2024.07.31 |
as/ is/ this/ base (0) | 2024.07.31 |