LINQ

    [C# 12와 .NET 8] 11. LINQ

    [C# 12와 .NET 8] 11. LINQ

    LINQ(Language INtegrated Query)는 일련의 data를 대상으로 filtering 및 sorting 하고 다른 형태로 결과를 투영할 수 있는 언어확장 도구입니다. 1. 왜 LINQ인가? (1) 명령형및 선언형 언어의 비교 LINQ는 2008년 .NET 3.0과 .NET Framework 3.0과 함께 도입되었습니다. 그전에 C#및 .NET개발자는 명령형이라고 하는 절차적 code문을 사용해 예를 들어 loop처럼 일련의 item들을 처리하곤 했습니다. 첫 번째 item에 대한 현재 위치를 설정합니다. 지정한 값과 하나 또는 그 이상의 속성을 비교 비교하여 예를 들어 가격이 50 이상이어야 한다거나 수량이 동일한지등과 같은 경우처럼 처리해야 하는 item인지를 확인합니다. 2번에서 조..

    [C# 11 과 .NET 7] 11. LINQ

    [C# 11 과 .NET 7] 11. LINQ

    LINQ(Language INtegrated Query)는 일련의 data를 대상으로 filtering 및 sorting 하고 다른 형태로 결과를 투영할 수 있는 언어확장 도구입니다. 1. 왜 LINQ인가? (1) 명령형및 선언형 언어의 기능 비교 LINQ는 2008년 .NET 3.0과 .NET Framework 3.0과 함께 도입되었습니다. 그전에 C#및 .NET개발자는 명령형이라고 하는 절차적 code문을 사용해 예를 들어 loop처럼 일련의 item들을 처리하곤 했습니다. 첫 번째 item에 대한 현재 위치를 설정합니다. 지정한 값과 하나 또는 그 이상의 속성을 비교 비교하여 예를 들어 가격이 50 이상이어야 한다거나 수량이 동일한지등과 같은 경우처럼 처리해야 하는 item인지를 확인합니다. 2번에..

    [C#] LINQ(Language INtegrated Query) - 3. comprehension syntax과 thread를 통한 응답성 향상, XML 다루기

    [C#] LINQ(Language INtegrated Query) - 3. comprehension syntax과 thread를 통한 응답성 향상, XML 다루기

    3. LINQ query comprehension syntax C# 3.0 때 마이크로소프트는 SQL과 같은 쿼리 구문을 LINQ 쿼리문으로 작성하는 방법을 토대로 개발자들이 더 익숙하게 LINQ구문을 작성하도록 하는 몇 가지 키워드를 소개했습니다. 예를 들어 다음과 같이 특정 Item을 필터링하는 메서드를 사용한 경우 using (Northwind db = new()) { var result = db.Products.Where(x => x.ProductId == 3).SingleOrDefault(); Console.WriteLine(result.ProductName); } query comprehension 구문을 통해 위와 같은 동작을 수행할 수 있습니다. using (Northwind db = ne..

    [C#] LINQ(Language INtegrated Query) - 2. EF Core와 집계처리

    2. EF Core와 LINQ '1. LINQ 표현식'에서는 LINQ를 통해 배열을 필터링하거나 정렬하는 예를 살펴보았습니다. 그리고 예제에서 사용된 소스는 List혹은 배열로서 단순한 형태의 데이터를 기반으로 하였습니다. 지금부터는 이 데이터 소스를 바꿔서 실제 DB의 Entity를 기반으로 다시 살펴보고자 합니다. (1) 모델 설정 이를 위해 EF Core model을 정의해야 하는데 여기서는 MS SQL Server와 Northwind DB를 통해 Model을 생성할 것입니다. 자세한 내용은 아래 글을 참고하시기 바랍니다. [C#] Entity Framework Core - 1. 시작/설정하기 [C#] Entity Framework Core - 1. 시작/설정하기 Entity Framework Co..

    [C#] LINQ(Language INtegrated Query) - 1. 기본 표현식

    [C#] LINQ(Language INtegrated Query) - 1. 기본 표현식

    LINQ(Language INtegrated Query)는 일련의 배열을 정렬하거나 필터링하는 확장 언어입니다. 1. LINQ 표현식 LINQ는 다음과 같은 부분으로 구성됩니다. Extension methods : Where나 OrderBy, Select와 같은 메서드를 포함하는데 LINQ에 대한 기능적인 부분을 제공합니다. LINQ providers : 메모리에서 객체를 다루기 위한 LINQ to Objects, 외부 데이터베이스에 데이터를 저장을 처리하기 위한 LINQ to Entities, XML을 다루기 위한 LINQ to XML 등을 의미하며 이들 공급자(providers)는 LINQ 표현식을 각 데이터에 맞는 특정한 방법으로 질의할 수 있도록 합니다. Lambda expressions : 메서..

    [C#] LINQ

    [C#] LINQ

    LINQ는 Language INtegrated Query로서 '데이터'를 질의하는데 목적이 있습니다. 우리가 흔히 DB를 대상으로 어떤 데이터를 추출할 때 SQL이라는 언어를 사용해 데이터를 질의하는데 SQL이 DB에 한정된 것이라면 LINQ는 프로그램 안에 존재하는 단순 배열까지 포함하여 IEnumerable인터페이스를 상속하는 모든 개체가 질의의 대상이 될 수 있습니다. 예를 들어 아래와 같은 형태의 데이터집합이 존재한다고 가정했을 때 class Program { static void Main(string[] args) { List pb = new List{ new PhoneBook { Idx = 1, Name = "홍길동" }, new PhoneBook { Idx = 2, Name = "홍길순" }..