언어 통합 쿼리 란 무엇입니까?

LINQ (언어 통합 쿼리)는 선언적 쿼리 구문을 명령 언어 (주로 C # 및 VB.NET)로 완벽하게 통합 할 수있는 기능을 제공합니다. LINQ의 개발은 쿼리 수행시 발생하는 객체 지향 환경에서 작업하는 개발자의 문제를 해결했습니다. 2007 년 11 월 Microsoft® .NET Framework 버전 3.5 및 Visual Studio® 코드 이름 "Orcas"의 일부로 도입되었습니다.

언어 통합 쿼리를 만들기 전에 .NET 언어에는 관계형 데이터베이스 나 XML 문서를 쿼리하는 기본 방법이 없었습니다. 이러한 언어로 작성하는 개발자는 각각 SQL 또는 XQuery를 문자열로 포함하고 결과 데이터를 .NET 개체에 수동으로 매핑해야했습니다. .NET 컴파일러는 내장 쿼리 문자열 및 매핑을 확인할 수 없으므로 런타임시 잠재적 오류를 발견 할 수 있습니다.

언어 통합 쿼리 이전에 개발자가 직면 한 또 다른 문제는 .NET 언어에 .NET 개체 컬렉션을 쿼리하기위한 개체 지향 구문 만 있다는 것입니다. 일반적으로 개발자는 전체 소스 콜렉션을 반복하여 검색 기준에 따라 새로운 결과 콜렉션을 빌드합니다. 개발자는 결과 콜렉션을 빌드하면서 데이터를 변환 할 수도 있습니다. 이 접근법은 번거로웠다. C # 또는 VB로 작성된 간단한 선택 쿼리에는 최소 5 줄의 코드가 필요하지만 동일한 쿼리에는 쿼리 언어에서 한 줄의 코드가 필요합니다.

개체 지향 환경 내에서 쿼리하는 문제로 인해 Microsoft는 LINQ를 만들 수있었습니다. LINQ는 정적 유형 검사가 완료된 C # 또는 VB와 함께 사용되는 SQL을 연상시키는 쿼리 구문을 제공합니다. 중첩 루프를 사용하는 대신 .NET 컬렉션을 쿼리 할 때 개발자는 LINQ 구문을 사용하여 항목을 선택하고 데이터를 변환 할 수 있습니다. 다른 장점들 중에서도 순수한 객체 지향 구문과 비교할 때 코드 줄이 더 적습니다.

외부 데이터 소스에 액세스 할 때 LINQ 및 지원 구성 요소는 .NET 언어 자체에 포함 된 쿼리 언어 및 데이터 매핑이 필요하지 않습니다. LINQ는 데이터 매핑을 수행하기 위해 LINQ 공급자라는 구성 요소에 의존합니다. LINQ-to-Objects는 LINQ가 .NET 컬렉션에 액세스 할 수 있도록하는 주식 공급자입니다. 마찬가지로 관계형 데이터베이스 및 XML 문서에 액세스하는 공급자가 있습니다. 이러한 공급자는 대부분 .NET Framework에 포함되지 않은 타사 구성 요소입니다. 사용 된 공급자에 관계없이 모든 쿼리는 동일한 LINQ 구문을 사용합니다.

언어 통합 쿼리 구문과 공급자 사이에는 LINQ 기능의 일부로 .NET Framework에 추가 된 쿼리 연산자 라이브러리가 있습니다. 이러한 연산자는 필터링, 순서 지정, 이론 작업 설정 및 집계와 같은 작업을 수행합니다. 이러한 연산자는 .NET Framework의 일부이므로 개발자가 원하는 경우 LINQ없이 사용할 수도 있습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?