Visual Basic의 LINQ 소개

업데이트: 2007년 11월

LINQ(통합 언어 쿼리)는 Visual Basic에 쿼리 기능을 추가하며 모든 종류의 데이터를 사용할 때 단순하면서도 강력한 기능을 제공합니다. LINQ에서는 처리할 데이터베이스로 쿼리를 보내거나 검색하는 각 데이터 형식에 대해 다른 쿼리 구문을 사용하지 않고 쿼리를 Visual Basic 언어의 일부로 도입합니다. 또한 데이터 형식에 상관없이 통합된 구문을 사용합니다.

LINQ를 사용하면 SQL Server 데이터베이스, XML, 메모리 내 배열 및 컬렉션, ADO.NET 데이터베이스, LINQ를 지원하는 다른 원격 또는 로컬 데이터 소스 등에서 데이터를 쿼리할 수 있습니다. 이러한 모든 쿼리를 일반 Visual Basic 언어 요소를 사용하여 수행할 수 있습니다. 쿼리를 Visual Basic 언어로 작성하므로 쿼리 결과가 강력한 형식의 개체로 반환됩니다. 이러한 개체는 IntelliSense를 지원하므로 코드를 더욱 빠르게 작성할 수 있을 뿐 아니라 런타임이 아닌 컴파일 시 쿼리의 오류를 catch할 수 있습니다. LINQ 쿼리를 추가 쿼리의 소스로 사용하여 더 정확한 결과를 얻을 수 있습니다. 또한 사용자가 쿼리 결과를 쉽게 보고 수정할 수 있도록 쿼리를 컨트롤에 바인딩할 수도 있습니다.

예를 들어 다음 코드 예제에서는 컬렉션에서 고객 목록을 반환한 다음 해당 위치에 따라 반환된 목록을 그룹화하는 LINQ 쿼리를 보여 줍니다.

Dim customers As List(Of Customer) = GetCustomerList()

Dim customersByCountry = From cust In customers _
                         Order By cust.Country, cust.City _
                         Group By CountryName = cust.Country _
                         Into RegionalCustomers = Group, Count() _
                         Order By CountryName

For Each country In customersByCountry
  Console.WriteLine(country.CountryName & _
                    " (" & country.Count & ")" & vbCrLf)

  For Each customer In country.RegionalCustomers
    Console.WriteLine(vbTab & customer.CompanyName & _
                      " (" & customer.City & ")")
  Next
Next

이 항목에서는 다음과 같은 영역에 대해 설명합니다:

  • LINQ 공급자

  • LINQ 쿼리 구조

  • Visual Basic LINQ 쿼리 연산자

  • LINQ to SQL을 사용하여 데이터베이스에 연결

  • LINQ를 지원하는 Visual Basic 기능

  • 지연 및 즉시 쿼리 실행

  • Visual Basic의 XML

  • 관련 리소스

  • 방법 및 연습 항목

LINQ 공급자

LINQ 공급자는 Visual Basic LINQ 쿼리를 쿼리할 데이터 소스에 매핑합니다. LINQ 쿼리를 작성할 때 공급자는 해당 쿼리를 가져와서 데이터 소스에서 실행할 수 있는 명령으로 변환합니다. 또한 공급자는 소스의 데이터를 쿼리 결과를 구성하는 개체로 변환합니다. 마지막으로 데이터 소스에 업데이트를 보낼 때 공급자는 개체를 데이터로 변환합니다.

Visual Basic에는 다음과 같은 LINQ 공급자가 포함되어 있습니다.

  • LINQ to Objects
    LINQ to Objects 공급자를 사용하면 메모리 내 컬렉션 및 배열을 쿼리할 수 있습니다. 개체에서 IEnumerable 또는 IEnumerable<T> 인터페이스를 지원하는 경우 LINQ to Objects 공급자를 사용하여 해당 개체를 쿼리할 수 있습니다.

    LINQ to Objects 공급자를 사용하려면 System.Linq 네임스페이스를 가져옵니다. 이 네임스페이스는 모든 Visual Basic 프로젝트에서 기본적으로 가져옵니다.

    LINQ to Objects 공급자에 대한 자세한 내용은 LINQ to Objects를 참조하십시오.

  • LINQ to SQL
    LINQ to SQL 공급자를 사용하면 SQL Server 데이터베이스의 데이터를 쿼리하고 수정할 수 있습니다. 따라서 응용 프로그램의 개체 모델을 데이터베이스의 테이블 및 개체에 쉽게 매핑할 수 있습니다.

    Visual Basic에는 O/R 디자이너(개체 관계형 디자이너)가 포함되어 있어 LINQ to SQL을 사용하기가 더욱 수월해졌습니다. 이 디자이너는 데이터베이스의 개체에 매핑되는 응용 프로그램의 개체 모델을 만드는 데 사용됩니다. O/R 디자이너를 사용하면 최적화된 동시성 검사를 위해 데이터베이스 및 저장소 상태에 대한 통신을 관리하는 DataContext 개체에 저장 프로시저와 함수를 매핑할 수도 있습니다.

    LINQ to SQL 공급자에 대한 자세한 내용은 LINQ to SQL을 참조하십시오. 개체 관계형 디자이너에 대한 자세한 내용은 O/R 디자이너(개체 관계형 디자이너)를 참조하십시오.

  • LINQ to XML
    LINQ to XML 공급자를 사용하면 XML을 쿼리하고 수정할 수 있습니다. 메모리 내 XML을 수정하거나 파일에서 XML을 로드하거나 XML을 파일로 저장할 수 있습니다.

    또한 LINQ to XML 공급자를 사용하면 XML 리터럴 및 XML 축 속성을 사용하여 Visual Basic 코드에서 XML을 직접 작성할 수 있습니다. 자세한 내용은 Visual Basic의 XML을 참조하십시오.

  • LINQ to DataSet
    LINQ to DataSet 공급자를 사용하면 ADO.NET 데이터 집합의 데이터를 쿼리하고 업데이트할 수 있습니다. 데이터 집합을 사용하는 응용 프로그램에 LINQ의 기능을 추가하여 데이터 집합의 데이터를 쿼리, 집계 및 업데이트하는 기능을 확장하고 단순화할 수 있습니다.

    자세한 내용은 LINQ to DataSet을 참조하십시오.

LINQ 쿼리 구조

쿼리 식이라고도 하는 LINQ 쿼리는 데이터 소스를 식별하는 쿼리 절과 쿼리에 대한 반복 변수의 조합으로 구성됩니다. 또한 쿼리 식에는 정렬, 필터링, 그룹화 및 조인을 위한 명령이나 소스 데이터에 적용할 계산이 포함될 수도 있습니다. 쿼리 식 구문은 SQL 구문과 비슷하므로 대부분의 구문에 익숙할 것입니다.

쿼리 식은 From 절로 시작합니다. 이 절은 쿼리의 소스 데이터와 소스 데이터의 각 요소를 개별적으로 참조하는 데 사용하는 변수를 식별합니다. 이러한 변수를 범위 변수나 반복 변수라고 합니다. From 절은 쿼리에서 필수 요소입니다. 단, Aggregate 쿼리에서만 From 절이 선택 사항입니다. From 또는 Aggregate 절에서 쿼리의 범위와 소스를 식별한 후 원하는 쿼리 절 조합을 추가하여 쿼리를 구체화할 수 있습니다. 쿼리 절에 대한 자세한 내용은 이 항목의 뒷부분에 있는 Visual Basic LINQ 쿼리 연산자를 참조하십시오. 예를 들어 다음 쿼리에서는 고객 데이터의 소스 컬렉션을 customers 변수로 식별하고 cust라는 반복 변수를 식별합니다.

Dim queryResults = From cust In customers _
                   Select cust.CompanyName

이 예제는 자체로서도 올바른 쿼리이지만 다른 쿼리 절을 추가하여 결과를 구체화하면 더욱 강력한 쿼리가 됩니다. 예를 들어 Where 절을 추가하여 결과를 하나 이상의 값을 기준으로 필터링할 수 있습니다. 쿼리 식은 한 줄의 코드이므로 쿼리 끝에 쿼리 절을 추가하면 됩니다. 쿼리를 줄 연속 문자인 밑줄(_)을 사용하여 여러 줄의 텍스트로 나누면 더 읽기 쉽게 만들 수 있습니다. 다음 코드 예제에서는 Where 절을 포함하는 쿼리 예제를 보여 줍니다.

Dim queryResults = From cust In customers _
                   Where cust.Country = "USA"

또 하나의 강력한 쿼리 절은 데이터 소스에서 선택한 필드만 반환하는 데 사용할 수 있는 Select 절입니다. LINQ 쿼리에서는 강력한 형식 개체의 열거 가능한 컬렉션을 반환합니다. 쿼리에서는 익명 형식이나 명명된 형식의 컬렉션을 반환할 수 있습니다. Select 절을 사용하면 데이터 소스에서 단일 필드만 반환할 수 있습니다. 이렇게 하면 반환된 컬렉션의 형식은 해당 단일 필드의 형식이 됩니다. Select 절을 사용하여 데이터 소스에서 여러 필드를 반환할 수도 있습니다. 이렇게 하면 반환된 컬렉션의 형식은 새로운 익명 형식이 됩니다. 또한 쿼리에서 반환되는 필드를 지정한 명명된 형식의 필드에 일치시킬 수 있습니다. 다음 코드 예제에서는 멤버가 데이터 소스에서 선택한 필드의 데이터로 채워진 익명 형식의 컬렉션을 반환하는 쿼리 식을 보여 줍니다.

Dim queryResults = From cust In customers _
               Where cust.Country = "USA" _
               Select cust.CompanyName, cust.Country

또한 LINQ 쿼리를 사용하여 여러 데이터 소스를 결합하거나 단일 결과를 반환할 수 있습니다. 이렇게 하려면 하나 이상의 From 절을 사용하거나 Join 또는 Group Join 쿼리 절을 사용할 수 있습니다. 다음 코드 예제에서는 고객 및 주문 데이터를 결합하고 고객 및 주문 데이터를 포함하는 익명 형식의 컬렉션을 반환하는 쿼리 식을 보여 줍니다.

Dim queryResults = From cust In customers, ord In orders _
                   Where cust.CustomerID = ord.CustomerID _
                   Select cust, ord

Group Join 절을 사용하여 고객 개체의 컬렉션을 포함하는 계층적 쿼리 결과를 만들 수 있습니다. 각 고객 개체에는 해당 고객의 모든 주문의 컬렉션을 포함하는 속성이 있습니다. 다음 코드 예제에서는 고객 및 주문 데이터를 계층적 결과로 결합하고 익명 형식의 컬렉션을 반환하는 쿼리 식을 보여 줍니다. 이 쿼리는 고객의 주문 데이터 컬렉션을 포함하는 CustomerOrders 속성이 포함된 형식을 반환합니다. 이 형식에는 해당 고객에 대한 모든 주문의 합계를 포함하는 OrderTotal 속성도 포함됩니다. 이 쿼리는 LEFT OUTER JOIN과 동일합니다.

Dim queryResults = From cust In customers _
                   Group Join ord In orders On _
                     cust.CustomerID Equals ord.CustomerID _
                     Into CustomerOrders = Group, _
                          OrderTotal = Sum(ord.Total) _
                   Select cust.CompanyName, cust.CustomerID, _
                          CustomerOrders, OrderTotal

강력한 쿼리 식을 만드는 데 사용할 수 있는 여러 추가 LINQ 쿼리 연산자가 있습니다. 이 항목의 다음 단원에서는 쿼리 식에 포함할 수 있는 여러 쿼리 절에 대해 설명합니다. Visual Basic 쿼리 절에 대한 자세한 내용은 쿼리(Visual Basic)를 참조하십시오.

Visual Basic LINQ 쿼리 연산자

System.Linq 네임스페이스와 LINQ 쿼리를 지원하는 다른 네임스페이스의 클래스에는 응용 프로그램의 필요에 따라 쿼리를 작성하고 구체화하기 위해 호출할 수 있는 메서드가 포함되어 있습니다. Visual Basic에는 다음 표에서 설명하는 대로 대부분의 일반 쿼리 절에 대한 키워드가 포함되어 있습니다.

  • From 절(Visual Basic)
    From 절이나 Aggregate 절은 쿼리를 시작하는 데 필요합니다. From 절은 쿼리의 소스 컬렉션과 반복 변수를 지정합니다. 예를 들어, 다음과 같습니다.

    ' Returns the company name for all customers for whom
    ' State is equal to "WA".
    Dim names = From cust In customers _
                Where cust.State = "WA" _
                Select cust.CompanyName
    
  • Select 절(Visual Basic)
    선택적 요소. 쿼리의 반복 변수 집합을 선언합니다. 예를 들어, 다음과 같습니다.

    ' Returns the company name and ID value for each
    ' customer as a collection of a new anonymous type.
    Dim customerList = From cust In customers _
                       Select cust.CompanyName, cust.CustomerID
    

    Select 절을 지정하지 않으면 쿼리의 반복 변수는 From 또는 Aggregate 절에서 지정하는 반복 변수로 구성됩니다.

  • Where 절(Visual Basic)
    선택적 요소. 쿼리의 필터링 조건을 지정합니다. 예를 들어, 다음과 같습니다.

    ' Returns all product names for which the Category of
    ' the product is "Beverages".
    Dim names = From product In products _
                Where product.Category = "Beverages" _
                Select product.Name
    
  • Order By 절(Visual Basic)
    선택적 요소. 쿼리에서 열의 정렬 순서를 지정합니다. 예를 들어, 다음과 같습니다.

    ' Returns a list of books sorted by price in 
    ' ascending order.
    Dim titlesAscendingPrice = From b In books _
                               Order By b.price
    
  • Join 절(Visual Basic)
    선택적 요소. 두 개의 컬렉션을 단일 컬렉션으로 결합합니다. 예를 들어, 다음과 같습니다.

    ' Returns a combined collection of all of the 
    ' processes currently running and a descriptive
    ' name for the process taken from a list of 
    ' descriptive names.
    Dim processes = From proc In Process.GetProcesses _
                    Join desc In processDescriptions _
                      On proc.ProcessName Equals desc.ProcessName _
                    Select proc.ProcessName, proc.Id, desc.Description
    
  • Group By 절(Visual Basic)
    선택적 요소. 쿼리 결과의 요소를 그룹화합니다. 각 그룹에 집계 함수를 적용하는 데 사용할 수 있습니다. 예를 들어, 다음과 같습니다.

    ' Returns a list of orders grouped by the order date
    ' and sorted in ascending order by the order date.
    Dim orderList = From order In orders _
                    Order By order.OrderDate _
                    Group By OrderDate = order.OrderDate _
                    Into OrdersByDate = Group
    
  • Group Join 절(Visual Basic)
    선택적 요소. 두 개의 컬렉션을 하나의 계층적 컬렉션으로 결합합니다. 예를 들어, 다음과 같습니다.

    ' Returns a combined collection of customers and
    ' customer orders.
    Dim customerList = From cust In customers _
                       Group Join ord In orders On _
                         cust.CustomerID Equals ord.CustomerID _
                       Into CustomerOrders = Group, _
                            TotalOfOrders = Sum(ord.Total) _
                       Select cust.CompanyName, cust.CustomerID, _
                              CustomerOrders, TotalOfOrders
    
  • Aggregate 절(Visual Basic)
    From 절이나 Aggregate 절은 쿼리를 시작하는 데 필요합니다. Aggregate 절은 컬렉션에 하나 이상의 집계 함수를 적용합니다. 예를 들어 Aggregate 절을 사용하면 쿼리에서 반환하는 모든 요소의 합계를 계산할 수 있습니다.

    ' Returns the sum of all order totals.
    Dim orderTotal = Aggregate order In orders _
                     Into Sum(order.Total)
    

    또한 Aggregate 절을 사용하여 쿼리를 수정할 수 있습니다. 예를 들어 Aggregate 절을 사용하여 관련된 쿼리 컬렉션에 대한 계산을 수행할 수 있습니다.

    ' Returns the customer company name and largest 
    ' order total for each customer.
    Dim customerMax = From cust In customers _
                      Aggregate order In cust.Orders _
                      Into MaxOrder = Max(order.Total) _
                      Select cust.CompanyName, MaxOrder
    
  • Let 절(Visual Basic)
    선택적 요소. 값을 계산하고 이 값을 쿼리의 새 변수에 할당합니다. 예를 들어, 다음과 같습니다.

    ' Returns a list of products with a calculation of
    ' a ten percent discount.
    Dim discountedProducts = From prod In products _
                             Let Discount = prod.UnitPrice * 0.1 _
                             Where Discount >= 50 _
                             Select prod.Name, prod.UnitPrice, Discount
    
  • Distinct 절(Visual Basic)
    선택적 요소. 현재 반복 변수의 값을 제한하여 쿼리 결과에서 중복 값을 제거합니다. 예를 들어, 다음과 같습니다.

    ' Returns a list of cities with no duplicate entries.
    Dim cities = From item In customers _
                 Select item.City _
                 Distinct
    
  • Skip 절(Visual Basic)
    선택적 요소. 컬렉션에서 지정된 수의 요소를 건너뛴 다음 나머지 요소를 반환합니다. 예를 들어, 다음과 같습니다.

    ' Returns a list of customers. The first 10 customers
    ' are ignored and the remaining customers are
    ' returned.
    Dim customerList = From cust In customers _
                       Skip 10
    
  • Skip While 절(Visual Basic)
    선택적 요소. 지정된 조건이 true이면 컬렉션에 있는 요소를 무시하고 나머지 요소를 반환합니다. 예를 들어, 다음과 같습니다.

    ' Returns a list of customers. The query ignores all
    ' customers until the first customer for whom
    ' IsSubscriber returns false. That customer and all
    ' remaining customers are returned.
    Dim customerList = From cust In customers _
                       Skip While IsSubscriber(cust)
    
  • Take 절(Visual Basic)
    선택적 요소. 컬렉션의 시작 위치에서 지정된 수의 연속 요소를 반환합니다. 예를 들어, 다음과 같습니다.

    ' Returns the first 10 customers.
    Dim customerList = From cust In customers _
                       Take 10
    
  • Take While 절(Visual Basic)
    선택적 요소. 지정된 조건이 true이면 컬렉션에 있는 요소를 포함하고 나머지 요소를 건너뜁니다. 예를 들어, 다음과 같습니다.

    ' Returns a list of customers. The query returns
    ' customers until the first customer for whom 
    ' HasOrders returns false. That customer and all 
    ' remaining customers are ignored.
    Dim customersWithOrders = From cust In customers _
                              Order By cust.Orders.Count Descending _
                              Take While HasOrders(cust)
    

Visual Basic 쿼리 절에 대한 자세한 내용은 쿼리(Visual Basic)를 참조하십시오.

LINQ에서 제공하는 열거 가능한 형식과 쿼리 가능한 형식의 멤버를 호출하여 추가 LINQ 쿼리 기능을 사용할 수 있습니다. 이러한 추가 기능을 사용하려면 쿼리 식의 결과에서 특정 쿼리 연산자를 호출할 수 있습니다. 예를 들어 다음 코드 예제에서는 Union 메서드를 사용하여 두 쿼리의 결과를 하나의 쿼리 결과로 결합합니다. 또한 ToList<TSource> 메서드를 사용하여 쿼리 결과를 제네릭 목록으로 반환합니다.

VbVbalrIntroToLINQ#22

추가 LINQ 기능에 대한 자세한 내용은 표준 쿼리 연산자 개요를 참조하십시오.

LINQ to SQL을 사용하여 데이터베이스에 연결

Visual Basic에서는 액세스할 테이블, 뷰 및 저장 프로시저와 같은 SQL Server 데이터베이스 개체를 LINQ to SQL 파일을 사용하여 식별합니다. LINQ to SQL 파일의 확장명은 .dbml입니다.

SQL Server 데이터베이스에 올바로 연결하면 프로젝트에 LINQ to SQL 클래스 항목 템플릿을 추가할 수 있습니다. 그러면 O/R 디자이너가 표시됩니다. O/R 디자이너를 사용하면 코드에서 액세스할 항목을 서버 탐색기/데이터베이스 탐색기에서 디자이너 화면으로 끌어 올 수 있습니다. LINQ to SQL 파일은 DataContext 개체를 프로젝트에 추가합니다. 이 개체에는 액세스할 테이블 및 뷰의 속성과 컬렉션, 그리고 호출할 저장 프로시저의 메서드가 포함되어 있습니다. 변경 내용을 LINQ to SQL 파일(.dbml)에 저장한 후에는 O/R 디자이너에서 정의한 DataContext 개체를 참조하여 이러한 개체에 액세스할 수 있습니다. 프로젝트에 대한 DataContext 개체의 이름은 LINQ to SQL 파일의 이름에 따라 지정됩니다. 예를 들어 LINQ to SQL 파일의 이름이 Northwind.dbml이면 NorthwindDataContext라는 DataContext 개체가 생성됩니다.

단계별 설명이 있는 예제를 보려면 방법: LINQ를 사용하여 데이터베이스 쿼리(Visual Basic)방법: LINQ를 사용하여 저장 프로시저 호출(Visual Basic)을 참조하십시오.

LINQ를 지원하는 Visual Basic 기능

Visual Basic에는 LINQ 사용을 간단하게 만들고 LINQ 쿼리를 수행하기 위해 작성해야 하는 코드 양을 줄이는 다른 주요 기능이 있습니다. 여기에는 다음과 같은 컨트롤이 포함됩니다.

  • 익명 형식 - 쿼리 결과를 기반으로 새 형식을 만드는 데 사용할 수 있습니다.

  • 암시적으로 형식화된 변수 - 형식 지정을 지연하고 컴파일러에서 쿼리 결과를 기반으로 형식을 유추하도록 하는 데 사용할 수 있습니다.

  • 확장 메서드 - 형식 자체를 수정하지 않고 사용자 고유의 메서드를 사용하여 기존 형식을 확장하는 데 사용할 수 있습니다.

자세한 내용은 LINQ를 지원하는 Visual Basic 기능을 참조하십시오.

지연 및 즉시 쿼리 실행

쿼리 실행은 쿼리를 만드는 것과는 별개의 작업입니다. 쿼리를 만든 후 쿼리의 실행은 별개의 메커니즘으로 트리거됩니다. 쿼리를 정의하자마자 실행할 수도 있고(즉시 실행) 정의를 저장한 다음 나중에 쿼리를 실행할 수도 있습니다(지연된 실행).

기본적으로 쿼리를 만들 때 쿼리 자체가 즉시 실행되지 않습니다. 대신 쿼리 결과를 참조하는 데 사용되는 변수에 쿼리 정의를 저장합니다. 나중에 For¢¢ç¦Next 루프와 같은 코드에서 쿼리 결과 변수에 액세스하면 쿼리가 실행됩니다. 이 프로세스를 지연된 실행이라고 합니다.

또한 쿼리를 정의할 때에 실행할 수도 있으며, 이를 즉시 실행이라고 합니다. 쿼리 결과의 개별 요소에 액세스해야 하는 메서드를 적용하여 즉시 실행을 트리거할 수 있습니다. Count, Sum, Average, Min 또는 Max와 같은 집계 함수를 포함하면 이렇게 할 수 있습니다. 집계 함수에 대한 자세한 내용은 Aggregate 절(Visual Basic)을 참조하십시오.

ToList 또는 ToArray 메서드를 사용하여 강제로 즉시 실행할 수도 있습니다. 이 방법은 쿼리를 즉시 실행하고 결과를 캐시하려는 경우에 유용합니다. 이러한 메서드에 대한 자세한 내용은 데이터 형식 변환을 참조하십시오.

쿼리 실행에 대한 자세한 내용은 LINQ 쿼리 처음 작성(Visual Basic)을 참조하십시오.

Visual Basic의 XML

Visual Basic의 XML 기능에는 코드에서 XML을 쉽게 만들고 액세스하고 쿼리하고 수정하는 데 사용할 수 있는 XML 리터럴 및 XML 축 속성이 있습니다. XML 리터럴을 사용하면 XML을 코드에서 직접 작성할 수 있습니다. Visual Basic 컴파일러에서는 XML을 기본 데이터 개체로 간주합니다.

다음 코드 예제에서는 XML 요소를 만들고, 해당 하위 요소 및 속성에 액세스하고, LINQ를 사용하여 요소의 내용을 쿼리하는 방법을 보여 줍니다.

' Place Imports statements at the top of your program.  
Imports <xmlns:ns="http://SomeNamespace">

Module Sample1

    Sub SampleTransform()

        ' Create test by using a global XML namespace prefix. 

        Dim contact = _
            <ns:contact>
                <ns:name>Patrick Hines</ns:name>
                <ns:phone ns:type="home">206-555-0144</ns:phone>
                <ns:phone ns:type="work">425-555-0145</ns:phone>
            </ns:contact>

        Dim phoneTypes = _
          <phoneTypes>
              <%= From phone In contact.<ns:phone> _
                  Select <type><%= phone.@ns:type %></type> _
              %>
          </phoneTypes>

        Console.WriteLine(phoneTypes)
    End Sub

End Module

자세한 내용은 Visual Basic의 XML을 참조하십시오.

관련 리소스

  • Visual Basic의 XML
    XML을 기본 데이터 개체로 Visual Basic 코드에 포함하는 데 사용할 수 있으며 쿼리할 수 있는 Visual Basic의 XML 기능에 대해 설명합니다.

  • 쿼리(Visual Basic)
    Visual Basic에서 사용할 수 있는 쿼리 절에 대한 참조 정보를 제공합니다.

  • LINQ(통합 언어 쿼리)
    LINQ에 대한 일반 정보, 프로그래밍 지침 및 샘플이 포함되어 있습니다.

  • LINQ to SQL
    LINQ to SQL에 대한 일반 정보, 프로그래밍 지침 및 샘플이 포함되어 있습니다.

  • LINQ to Objects
    LINQ to Objects에 대한 일반 정보, 프로그래밍 지침 및 샘플이 포함되어 있습니다.

  • LINQ to ADO.NET(포털 페이지)
    LINQ to ADO.NET에 대한 일반 정보, 프로그래밍 지침 및 샘플에 대한 링크가 포함되어 있습니다.

  • LINQ to XML
    LINQ to XML에 대한 일반 정보, 프로그래밍 지침 및 샘플이 포함되어 있습니다.

방법 및 연습 항목

방법: LINQ를 사용하여 데이터베이스 쿼리(Visual Basic)

방법: LINQ를 사용하여 저장 프로시저 호출(Visual Basic)

방법: LINQ를 사용하여 데이터베이스의 데이터 수정(Visual Basic)

방법: 조인을 사용하여 데이터와 LINQ 결합(Visual Basic)

방법: LINQ를 사용하여 컬렉션 정렬(Visual Basic)

방법: LINQ를 사용하여 쿼리 결과 필터링(Visual Basic)

방법: LINQ를 사용하여 데이터 개수, 합 또는 평균 계산(Visual Basic)

방법: LINQ를 사용하여 쿼리 결과의 최소값 또는 최대값 찾기(Visual Basic)

연습: LINQ to SQL 클래스 만들기(O/R 디자이너)

방법: 저장 프로시저를 할당하여 업데이트, 삽입 및 삭제 수행(O/R 디자이너)

참고 항목

개념

Visual Basic의 LINQ to XML 개요

LINQ to DataSet 개요

DataContext 메서드(O/R 디자이너)

기타 리소스

LINQ(통합 언어 쿼리)

LINQ to SQL

LINQ 샘플

O/R 디자이너(개체 관계형 디자이너)