Bagikan melalui


Pengantar LINQ di Visual Basic

Language-Integrated Query (LINQ) menambahkan kemampuan kueri ke Visual Basic dan menyediakan kemampuan sederhana dan canggih saat Anda bekerja dengan semua jenis data. Daripada mengirim kueri ke database yang akan diproses, atau bekerja dengan sintaks kueri yang berbeda untuk setiap jenis data yang Anda cari, LINQ memperkenalkan kueri sebagai bagian dari bahasa Visual Basic. Ini menggunakan sintaks terpadu terlepas dari jenis data.

LINQ memungkinkan Anda mengkueri data dari database SQL Server, XML, array dan koleksi dalam memori, ADO.NET himpunan data, atau sumber data jarak jauh atau lokal lainnya yang mendukung LINQ. Anda dapat melakukan semua ini dengan elemen bahasa Visual Basic umum. Karena kueri Anda ditulis dalam bahasa Visual Basic, hasil kueri Anda dikembalikan sebagai objek yang ditik dengan kuat. Objek ini mendukung IntelliSense, yang memungkinkan Anda menulis kode lebih cepat dan menangkap kesalahan dalam kueri Anda pada waktu kompilasi alih-alih pada waktu proses. Kueri LINQ dapat digunakan sebagai sumber kueri tambahan untuk menyempurnakan hasil. Mereka juga dapat terikat ke kontrol sehingga pengguna dapat dengan mudah menampilkan dan mengubah hasil kueri Anda.

Misalnya, contoh kode berikut menunjukkan kueri LINQ yang mengembalikan daftar pelanggan dari koleksi dan mengelompokkannya berdasarkan lokasi mereka.

' Obtain a list of customers.
Dim customers As List(Of Customer) = GetCustomers()

' Return customers that are grouped based on country.
Dim countries = From cust In customers
                Order By cust.Country, cust.City
                Group By CountryName = cust.Country
                Into CustomersInCountry = Group, Count()
                Order By CountryName

' Output the results.
For Each country In countries
    Debug.WriteLine(country.CountryName & " count=" & country.Count)

    For Each customer In country.CustomersInCountry
        Debug.WriteLine("   " & customer.CompanyName & "  " & customer.City)
    Next
Next

' Output:
'   Canada count=2
'      Contoso, Ltd  Halifax
'      Fabrikam, Inc.  Vancouver
'   United States count=1
'      Margie's Travel  Redmond

Menjalankan pengujian

Untuk menjalankan contoh dalam pengenalan dan di bagian Struktur Kueri LINQ , sertakan kode berikut, yang mengembalikan daftar pelanggan dan pesanan.

' Return a list of customers.
Private Function GetCustomers() As List(Of Customer)
    Return New List(Of Customer) From
        {
            New Customer With {.CustomerID = 1, .CompanyName = "Contoso, Ltd", .City = "Halifax", .Country = "Canada"},
            New Customer With {.CustomerID = 2, .CompanyName = "Margie's Travel", .City = "Redmond", .Country = "United States"},
            New Customer With {.CustomerID = 3, .CompanyName = "Fabrikam, Inc.", .City = "Vancouver", .Country = "Canada"}
        }
End Function

' Return a list of orders.
Private Function GetOrders() As List(Of Order)
    Return New List(Of Order) From
        {
            New Order With {.CustomerID = 1, .Amount = "200.00"},
            New Order With {.CustomerID = 3, .Amount = "600.00"},
            New Order With {.CustomerID = 1, .Amount = "300.00"},
            New Order With {.CustomerID = 2, .Amount = "100.00"},
            New Order With {.CustomerID = 3, .Amount = "800.00"}
        }
End Function

' Customer Class.
Private Class Customer
    Public Property CustomerID As Integer
    Public Property CompanyName As String
    Public Property City As String
    Public Property Country As String
End Class

' Order Class.
Private Class Order
    Public Property CustomerID As Integer
    Public Property Amount As Decimal
End Class

Penyedia LINQ

Penyedia LINQ memetakan kueri Visual Basic LINQ Anda ke sumber data yang sedang dikueri. Saat Anda menulis kueri LINQ, penyedia mengambil kueri tersebut dan menerjemahkannya ke dalam perintah yang dapat dijalankan sumber data. Penyedia juga mengonversi data dari sumber ke objek yang membentuk hasil kueri Anda. Terakhir, ini mengonversi objek ke data saat Anda mengirim pembaruan ke sumber data.

Visual Basic menyertakan penyedia LINQ berikut.

Penyedia Deskripsi
LINQ ke Objek Penyedia LINQ ke Objek memungkinkan Anda mengkueri koleksi dan array dalam memori. Jika sebuah objek mendukung antarmuka IEnumerable atau IEnumerable<T>, penyedia LINQ ke Objek memungkinkan Anda untuk melakukan kueri.

Anda dapat mengaktifkan penyedia LINQ to Objects dengan mengimpor namespace System.Linq, yang diimpor secara default untuk semua proyek Visual Basic.

Untuk informasi selengkapnya tentang penyedia LINQ ke Objek, lihat LINQ ke Objek.
LINQ ke SQL Penyedia LINQ ke SQL memungkinkan Anda mengkueri dan memodifikasi data dalam database SQL Server. Ini memudahkan untuk memetakan model objek untuk aplikasi ke tabel dan objek dalam database.

Visual Basic memudahkan untuk bekerja dengan LINQ ke SQL dengan menyertakan Object Relational Designer (O/R Designer). Perancang ini digunakan untuk membuat model objek dalam aplikasi yang memetakan ke objek dalam database. Perancang O/R juga menyediakan fungsionalitas untuk memetakan prosedur dan fungsi tersimpan ke DataContext objek, yang mengelola komunikasi dengan database dan menyimpan status untuk pemeriksaan konkurensi optimis.

Untuk informasi selengkapnya tentang penyedia LINQ ke SQL, lihat LINQ ke SQL. Untuk informasi selengkapnya tentang Desainer Hubungan Objek, lihat LINQ ke Alat SQL di Visual Studio.
LINQ ke XML Penyedia LINQ ke XML memungkinkan Anda mengkueri dan memodifikasi XML. Anda dapat mengubah XML dalam memori, atau Anda dapat memuat XML dari dan menyimpan XML ke file.

Selain itu, penyedia LINQ ke XML memungkinkan properti literal XML dan sumbu XML yang memungkinkan Anda menulis XML langsung dalam kode Visual Basic Anda. Untuk informasi selengkapnya, lihat XML.
LINQ ke DataSet Penyedia LINQ ke Himpunan Data memungkinkan Anda mengkueri dan memperbarui data dalam himpunan data ADO.NET. Anda dapat menambahkan kekuatan LINQ ke aplikasi yang menggunakan himpunan data untuk menyederhanakan dan memperluas kemampuan Anda untuk mengkueri, menggabungkan, dan memperbarui data dalam himpunan data Anda.

Untuk informasi selengkapnya, lihat LINQ ke Himpunan Data.

Struktur kueri LINQ

Kueri LINQ, sering disebut sebagai ekspresi kueri, terdiri dari kombinasi klausa kueri yang mengidentifikasi sumber data dan variabel perulangan untuk kueri. Ekspresi kueri juga dapat menyertakan instruksi untuk mengurutkan, memfilter, mengelompokkan, dan bergabung, atau perhitungan untuk diterapkan ke data sumber. Sintaks ekspresi kueri menyerupai sintaks SQL; oleh karena itu, Anda mungkin akan merasa familiar dengan banyak sintaksnya.

Ekspresi kueri dimulai dengan From klausa. Klausa ini mengidentifikasi data sumber untuk kueri dan variabel yang digunakan untuk merujuk ke setiap elemen data sumber satu per satu. Variabel ini diberi nama variabel rentang atau variabel iterasi. Klausa From diperlukan untuk kueri, kecuali untuk Aggregate kueri, di mana From klausa bersifat opsional. Setelah cakupan dan sumber kueri diidentifikasi dalam From klausa atau Aggregate , Anda bisa menyertakan kombinasi klausa kueri apa pun untuk menyempurnakan kueri. Untuk detail tentang klausa kueri, lihat Operator Kueri Visual Basic LINQ nanti dalam topik ini. Misalnya, kueri berikut mengidentifikasi kumpulan sumber data pelanggan sebagai customers variabel, dan variabel iterasi bernama cust.

Dim customers = GetCustomers()

Dim queryResults = From cust In customers

For Each result In queryResults
    Debug.WriteLine(result.CompanyName & "  " & result.Country)
Next

' Output:
'   Contoso, Ltd  Canada
'   Margie's Travel  United States
'   Fabrikam, Inc.  Canada

Contoh ini adalah kueri yang valid dengan sendirinya; namun, kueri menjadi jauh lebih kuat ketika Anda menambahkan lebih banyak klausa kueri untuk menyempurnakan hasilnya. Misalnya, Anda dapat menambahkan Where klausa untuk memfilter hasil menurut satu atau beberapa nilai. Ekspresi kueri adalah satu baris kode; Anda hanya bisa menambahkan klausa kueri tambahan ke akhir kueri. Anda dapat memecah kueri menjadi beberapa baris teks untuk meningkatkan keterbacaan dengan menggunakan karakter garis bawah (_) sebagai kelanjutan baris. Contoh kode berikut menunjukkan contoh kueri yang menyertakan Where klausa.

Dim queryResults = From cust In customers
                   Where cust.Country = "Canada"

Klausa kueri canggih lainnya adalah Select klausa, yang memungkinkan Anda mengembalikan hanya bidang yang dipilih dari sumber data. Kueri LINQ mengembalikan koleksi enumerable dari objek yang bertipe kuat. Kueri dapat mengembalikan kumpulan tipe anonim atau tipe bernama. Anda dapat menggunakan Select klausa untuk mengembalikan hanya satu bidang dari sumber data. Ketika Anda melakukan ini, jenis koleksi yang dikembalikan adalah jenis bidang tunggal tersebut. Anda juga dapat menggunakan Select klausul untuk mengembalikan beberapa bidang dari sumber data. Ketika Anda melakukan ini, jenis koleksi yang dikembalikan adalah jenis anonim baru. Anda juga bisa mencocokkan bidang yang dikembalikan oleh kueri ke bidang dari jenis yang ditentukan. Contoh kode berikut menunjukkan ekspresi kueri yang mengembalikan kumpulan jenis anonim yang memiliki anggota yang diisi dengan data dari bidang yang dipilih dari sumber data.

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

Kueri LINQ juga dapat digunakan untuk menggabungkan beberapa sumber data dan mengembalikan satu hasil. Ini dapat dilakukan dengan satu atau beberapa klausul From, atau dengan menggunakan salah satu klausul Join atau Group Join. Contoh kode berikut menunjukkan ekspresi kueri yang menggabungkan data pelanggan dan pesanan dan mengembalikan kumpulan jenis anonim yang berisi data pelanggan dan pesanan.

Dim customers = GetCustomers()
Dim orders = GetOrders()

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

For Each result In queryResults
    Debug.WriteLine(result.ord.Amount & "  " & result.ord.CustomerID & "  " & result.cust.CompanyName)
Next

' Output:
'   200.00  1  Contoso, Ltd
'   300.00  1  Contoso, Ltd
'   100.00  2  Margie's Travel
'   600.00  3  Fabrikam, Inc.
'   800.00  3  Fabrikam, Inc.

Anda dapat menggunakan Group Join klausa untuk membuat hasil kueri hierarkis yang berisi kumpulan objek pelanggan. Setiap objek pelanggan memiliki properti yang berisi kumpulan semua pesanan untuk pelanggan tersebut. Contoh kode berikut menunjukkan ekspresi kueri yang menggabungkan data pelanggan dan pesanan sebagai hasil hierarkis dan mengembalikan kumpulan jenis anonim. Kueri mengembalikan tipe yang mencakup properti CustomerOrders yang berisi kumpulan data pesanan pelanggan. Ini juga termasuk OrderTotal properti yang berisi jumlah total untuk semua pesanan untuk pelanggan tersebut. (Kueri ini setara dengan LEFT OUTER JOIN.)

Dim customers = GetCustomers()
Dim orders = GetOrders()

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

For Each result In queryResults
    Debug.WriteLine(result.OrderTotal & "  " & result.CustomerID & "  " & result.CompanyName)
    For Each ordResult In result.CustomerOrders
        Debug.WriteLine("   " & ordResult.Amount)
    Next
Next

' Output:
'   500.00  1  Contoso, Ltd
'      200.00
'      300.00
'   100.00  2  Margie's Travel
'      100.00
'   1400.00  3  Fabrikam, Inc.
'      600.00
'      800.00

Ada beberapa operator kueri LINQ tambahan yang bisa Anda gunakan untuk membuat ekspresi kueri yang canggih. Bagian berikutnya dari topik ini membahas berbagai klausa kueri yang bisa Anda sertakan dalam ekspresi kueri. Untuk detail tentang klausa kueri Visual Basic, lihat Kueri.

Operator kueri Visual Basic LINQ

Kelas di System.Linq namespace dan namespace lainnya yang mendukung kueri LINQ termasuk metode yang dapat Anda panggil untuk membuat dan menyempurnakan kueri berdasarkan kebutuhan aplikasi Anda. Visual Basic menyertakan kata kunci untuk klausa kueri umum berikut ini. Untuk detail tentang klausa kueri Visual Basic, lihat Kueri.

Dari klausa

From klausa atau Aggregate klausa diperlukan untuk memulai kueri. From Klausa menentukan kumpulan sumber dan variabel perulangan untuk kueri. Contohnya:

' Returns the company name for all customers for which
' the Country is equal to "Canada".
Dim names = From cust In customers
            Where cust.Country = "Canada"
            Select cust.CompanyName

Pilih klausa

Fakultatif. Select Klausa mendeklarasikan sekumpulan variabel iterasi untuk kueri. Contohnya:

' 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

Jika klausa Select tidak ditentukan, variabel iterasi untuk kueri terdiri dari variabel iterasi yang ditentukan oleh klausa From atau Aggregate.

Klausa di mana

Fakultatif. Where Klausa menentukan kondisi pemfilteran untuk kueri. Contohnya:

' 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

Urutkan Menurut klausa

Fakultatif. KlausaOrder By menentukan urutan pengurutan untuk kolom dalam kueri. Contohnya:

' Returns a list of books sorted by price in 
' ascending order.
Dim titlesAscendingPrice = From b In books
                           Order By b.price

Klausa gabungan

Fakultatif. Join Klausa menggabungkan dua kumpulan menjadi satu kumpulan. Contohnya:

' 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

Klausa Kelompokkan Menurut

Fakultatif. Group By Klausa mengelompokkan elemen hasil kueri. Ini dapat digunakan untuk menerapkan fungsi agregat ke setiap grup. Contohnya:

' 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

Klausa Gabungan Grup

Fakultatif. Group Join Klausa menggabungkan dua koleksi ke dalam satu koleksi hierarkis. Contohnya:

' 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.Amount)
                   Select cust.CompanyName, cust.CustomerID,
                          CustomerOrders, TotalOfOrders

Klausa agregat

Aggregate Klausa atau From klausa diperlukan untuk memulai kueri. Klausa Aggregate menerapkan satu atau beberapa fungsi agregat ke koleksi. Misalnya, Anda dapat menggunakan Aggregate klausul untuk menghitung jumlah untuk semua elemen yang dikembalikan oleh kueri, seperti contoh berikut.

' Returns the sum of all order amounts.
Dim orderTotal = Aggregate order In orders
                 Into Sum(order.Amount)

Anda juga bisa menggunakan Aggregate klausa untuk mengubah kueri. Misalnya, Anda dapat menggunakan Aggregate klausul untuk melakukan penghitungan pada kumpulan kueri terkait. Contohnya:

' Returns the customer company name and largest 
' order amount for each customer.
Dim customerMax = From cust In customers
                  Aggregate order In cust.Orders
                  Into MaxOrder = Max(order.Amount)
                  Select cust.CompanyName, MaxOrder

Klausa let

Fakultatif. Let Klausa menghitung nilai dan menetapkannya ke variabel baru dalam kueri. Contohnya:

' 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

Klausa yang berbeda

Fakultatif. Klausa Distinct membatasi nilai variabel iterasi saat ini untuk menghilangkan nilai duplikat dalam hasil kueri. Contohnya:

' Returns a list of cities with no duplicate entries.
Dim cities = From item In customers
             Select item.City
             Distinct

Lewati klausa

Fakultatif. Skip Klausa melewati jumlah elemen tertentu dalam koleksi lalu mengembalikan elemen yang tersisa. Contohnya:

' 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

Lewati Klausa Sementara

Fakultatif. Skip While Klausa melewati elemen dalam koleksi selama kondisi yang ditentukan adalah true dan kemudian mengembalikan elemen yang tersisa. Contohnya:

' 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)

Ambil klausa

Fakultatif. Take Klausa mengembalikan sejumlah elemen berurutan tertentu dari awal koleksi. Contohnya:

' Returns the first 10 customers.
Dim customerList = From cust In customers
                   Take 10

Klausa Ambil Sementara

Fakultatif. Take While Klausa mencakup elemen dalam koleksi selama kondisi tertentu dipenuhi true dan mengesampingkan elemen yang tersisa. Contohnya:

' 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)

Menggunakan fitur kueri LINQ tambahan

Anda dapat menggunakan fitur kueri LINQ tambahan dengan memanggil anggota jenis yang dapat dijumlahkan dan dapat dikueri yang disediakan oleh LINQ. Anda dapat menggunakan kemampuan tambahan ini dengan memanggil operator kueri tertentu pada hasil ekspresi kueri. Misalnya, contoh berikut menggunakan Enumerable.Union metode untuk menggabungkan hasil dua kueri ke dalam satu hasil kueri. Ini menggunakan Enumerable.ToList metode untuk mengembalikan hasil kueri sebagai daftar generik.

Public Function GetAllCustomers() As List(Of Customer)
    Dim customers1 = From cust In domesticCustomers
    Dim customers2 = From cust In internationalCustomers

    Dim customerList = customers1.Union(customers2)

    Return customerList.ToList()
End Function

Untuk detail tentang kemampuan LINQ tambahan, lihat Gambaran Umum Operator Kueri Standar.

Menyambungkan ke database dengan menggunakan LINQ ke SQL

Di Visual Basic, Anda mengidentifikasi objek database SQL Server, seperti tabel, tampilan, dan prosedur tersimpan, yang ingin Anda akses dengan menggunakan file LINQ ke SQL. File LINQ ke SQL memiliki ekstensi .dbml.

Saat Anda memiliki koneksi yang valid ke database SQL Server, Anda dapat menambahkan LINQ ke templat item Kelas SQL ke proyek Anda. Ini akan menampilkan Object Relational Designer (perancang O/R). Perancang O/R memungkinkan Anda menyeret item yang ingin Anda akses dalam kode Anda dari Server Explorer/Database Explorer ke permukaan perancang. File LINQ ke SQL menambahkan DataContext objek ke proyek Anda. Objek ini mencakup properti dan koleksi untuk tabel dan tampilan yang ingin Anda akses, dan metode untuk prosedur tersimpan yang ingin Anda panggil. Setelah menyimpan perubahan ke file LINQ ke SQL (.dbml), Anda dapat mengakses objek ini dalam kode Anda dengan merujuk DataContext objek yang ditentukan oleh Perancang O/R. Objek DataContext untuk proyek Anda dinamai berdasarkan nama file LINQ ke SQL Anda. Misalnya, file LINQ ke SQL yang bernama Northwind.dbml akan membuat DataContext objek bernama NorthwindDataContext.

Untuk contoh dengan instruksi langkah demi langkah, lihat Cara: Mengkueri Database dan Cara: Memanggil Prosedur Tersimpan.

Fitur Visual Basic yang mendukung LINQ

Visual Basic mencakup fitur penting lainnya yang membuat penggunaan LINQ menjadi sederhana dan mengurangi jumlah kode yang harus Anda tulis untuk melakukan kueri LINQ. Ini termasuk yang berikut ini:

  • Jenis anonim, yang memungkinkan Anda membuat jenis baru berdasarkan hasil kueri.

  • Variabel yang diketik secara implisit, yang memungkinkan Anda menunda penentuan jenis dan membiarkan pengompilasi menyimpulkan jenis berdasarkan hasil kueri.

  • Metode ekstensi, yang memungkinkan Anda memperluas jenis yang ada dengan metode Anda sendiri tanpa memodifikasi jenis itu sendiri.

Untuk detailnya, lihat Fitur Visual Basic yang Mendukung LINQ.

Pelaksanaan kueri yang ditangguhkan dan yang langsung

Eksekusi kueri terpisah dari membuat kueri. Setelah kueri dibuat, eksekusinya dipicu oleh mekanisme terpisah. Kueri dapat dijalankan segera setelah didefinisikan (eksekusi segera), atau definisi dapat disimpan dan kueri dapat dijalankan nanti (eksekusi yang ditangguhkan).

Secara default, saat Anda membuat kueri, kueri itu sendiri tidak segera dijalankan. Sebagai gantinya, definisi kueri disimpan dalam variabel yang digunakan untuk mereferensikan hasil kueri. Ketika variabel hasil kueri diakses nanti dalam kode, seperti dalam perulangan For…Next , kueri dijalankan. Proses ini disebut sebagai eksekusi yang ditangguhkan.

Kueri juga dapat dijalankan ketika didefinisikan, yang disebut sebagai eksekusi segera. Anda dapat memicu eksekusi segera dengan menerapkan metode yang memerlukan akses ke elemen individual dari hasil kueri. Ini bisa menjadi hasil dari menyertakan fungsi agregat, seperti Count, , Sum, AverageMin, atau Max. Untuk informasi selengkapnya tentang fungsi agregat, lihat Klausa Agregat.

Menggunakan ToList atau ToArray metode juga akan memaksa eksekusi segera. Ini bisa berguna ketika Anda ingin segera menjalankan kueri dan menyimpan cache hasilnya. Untuk informasi selengkapnya tentang metode ini, lihat Mengonversi Jenis Data.

Untuk informasi selengkapnya tentang eksekusi kueri, lihat Menulis Kueri LINQ Pertama Anda.

XML di Visual Basic

Fitur XML di Visual Basic mencakup literal XML dan properti sumbu XML, yang memungkinkan Anda dengan mudah membuat, mengakses, mengkueri, dan memodifikasi XML dalam kode Anda. Literal XML memungkinkan Anda menulis XML langsung dalam kode Anda. Pengkompilasi Visual Basic memperlakukan XML sebagai objek data kelas satu.

Contoh kode berikut menunjukkan cara membuat elemen XML, mengakses sub-elemen dan atributnya, dan mengkueri konten elemen dengan menggunakan 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

Untuk informasi selengkapnya, lihat XML.

Topik Deskripsi
XML Menjelaskan fitur XML di Visual Basic yang dapat dikueri dan yang memungkinkan Anda menyertakan XML sebagai objek data kelas satu dalam kode Visual Basic Anda.
Pertanyaan Menyediakan informasi referensi tentang klausa kueri yang tersedia di Visual Basic.
LINQ (Kueri Terintegrasi Bahasa) Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ.
LINQ ke SQL Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ ke SQL.
LINQ untuk Objek Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ ke Objek.
LINQ ke ADO.NET (Halaman Portal) Termasuk tautan ke informasi umum, panduan pemrograman, dan sampel untuk LINQ ke ADO.NET.
LINQ ke XML Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ ke XML.

Topik cara dan panduan langkah demi langkah

Cara: Mengkueri Database

Cara: Memanggil Prosedur Tersimpan

Cara: Mengubah Data dalam Database

Cara: Menggabungkan Data dengan Gabungan

Cara: Mengurutkan Hasil Kueri

Cara: Memfilter Hasil Kueri

Cara: Menghitung, Menjumlahkan, atau Rata-Rata Data

Cara: Menemukan Nilai Minimum atau Maksimum dalam Hasil Kueri

Cara: Menetapkan prosedur tersimpan untuk melakukan pembaruan, penyisipan, dan penghapusan (Perancang O/R)

Bab 17: LINQ dalam Pemrograman Visual Basic 2008

Lihat juga