Bagikan melalui


Panduan: Model dan Kueri Objek Sederhana (Visual Basic)

Panduan ini menyediakan LINQ end-to-end yang mendasar untuk skenario SQL dengan kompleksitas minimal. Anda akan membuat kelas entitas yang memodelkan tabel Pelanggan dalam sampel database Northwind. Kemudian, Anda akan membuat kueri sederhana untuk mencantumkan pelanggan yang berlokasi di London.

Panduan ini berorientasi pada kode berdasarkan desain untuk membantu menunjukkan LINQ ke konsep SQL. Biasanya, Anda akan menggunakan Object Relational Designer untuk membuat model objek Anda.

Catatan

Komputer Anda mungkin memperlihatkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam petunjuk berikut. Edisi Visual Studio yang Anda miliki dan setelan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE.

Panduan ini ditulis menggunakan Pengaturan Pengembangan Visual Basic.

Prasyarat

  • Panduan ini menggunakan folder khusus ("c:\linqtest") untuk menyimpan file. Buat folder ini sebelum Anda memulai panduan.

  • Panduan ini memerlukan database sampel Northwind. Jika Anda tidak memiliki database ini di komputer pengembangan Anda, Anda dapat mengunduhnya dari situs pengunduhan Microsoft. Untuk mengetahui petunjuknya, lihat Mengunduh Database Sampel. Setelah Anda mengunduh database, salin file ke folder c:\linqtest.

Gambaran Umum

Panduan ini terdiri atas enam tugas utama:

  • Membuat solusi LINQ to SQL di Visual Studio.

  • Memetakan kelas ke tabel database.

  • Menunjuk properti pada kelas untuk mewakili kolom database.

  • Menentukan koneksi ke database Northwind.

  • Membuat kueri sederhana untuk dijalankan terhadap database.

  • Menjalankan kueri dan mengamati hasilnya.

Membuat Solusi LINQ to SQL

Dalam tugas pertama ini, Anda membuat solusi Visual Studio yang berisi referensi yang diperlukan untuk membuat dan menjalankan proyek LINQ to SQL.

Untuk membuat solusi LINQ to SQL

  1. Pada menu File, klik Proyek Baru.

  2. Di panel Jenis proyek dari kotak dialog Proyek Baru, klik Visual Basic.

  3. Di panel Template, klik Aplikasi Konsol.

  4. Di kotak Nama, ketik LinqConsoleApp.

  5. Klik OK.

Menambahkan Referensi dan Arahan LINQ

Panduan ini menggunakan rakitan yang mungkin tidak diinstal secara default di proyek Anda. Jika System.Data.Linq tidak terdaftar sebagai referensi dalam proyek Anda (klik Tampilkan Semua File di Penjelajah Solusi dan luaskan node Referensi), lalu tambahkan, seperti yang dijelaskan dalam langkah-langkah berikut.

Untuk menambahkan System.Data.Linq

  1. Di Penjelajah Solusi, klik kanan Referensi, lalu pilih Tambahkan Referensi.

  2. Dalam kotak dialog Tambahkan Referensi, klik .NET, klik rakitan System.Data.Linq, lalu klik OK.

    Rakitan ditambahkan ke proyek.

  3. Juga dalam kotak dialog Tambahkan Referensi, klik .NET, gulir ke dan klik Sistem. Windows. Formulir, lalu klik OK.

    Rakitan ini, yang mendukung kotak pesan di panduan, ditambahkan ke proyek.

  4. Tambahkan arahan berikut di atas Module1 :

    Imports System.Data.Linq
    Imports System.Data.Linq.Mapping
    Imports System.Windows.Forms
    
    

Memetakan Kelas ke Tabel Database

Dalam langkah ini, Anda membuat kelas dan memetakannya ke tabel database. Kelas semacam itu disebut kelas entitas. Perhatikan bahwa pemetaan hanya dilakukan dengan menambahkan atribut TableAttribute. Properti Name menentukan nama tabel dalam database.

Untuk membuat kelas entitas dan memetakannya ke tabel database

  • Ketik atau tempelkan kode berikut ke Module1.vb tepat di atas Sub Main:

    <Table(Name:="Customers")> _
    Public Class Customer
    End Class
    

Menunjuk Properti pada Kelas untuk Mewakili Kolom Database

Dalam langkah ini, Anda menyelesaikan beberapa tugas.

  • Anda menggunakan atribut ColumnAttribute untuk menunjuk properti CustomerID dan City pada kelas entitas sebagai mewakili kolom dalam tabel database.

  • Anda menunjuk properti CustomerID sebagai mewakili kolom kunci primer dalam database.

  • Anda menunjuk kolom _CustomerID dan _City untuk penyimpanan privat. Kemudian, LINQ to SQL dapat menyimpan dan mengambil nilai secara langsung, daripada menggunakan aksesor publik yang dapat menyertakan logika bisnis.

Untuk mewakili karakteristik dua kolom database

  • Ketik atau tempel kode berikut ke Module1.vb tepat sebelum End Class:

    Private _CustomerID As String
    <Column(IsPrimaryKey:=True, Storage:="_CustomerID")> _
    Public Property CustomerID() As String
        Get
            Return Me._CustomerID
        End Get
        Set(ByVal value As String)
            Me._CustomerID = value
        End Set
    End Property
    
    Private _City As String
    <Column(Storage:="_City")> _
    Public Property City() As String
        Get
            Return Me._City
        End Get
        Set(ByVal value As String)
            Me._City = value
        End Set
    End Property
    

Menentukan Koneksi ke Database Northwind

Dalam langkah ini, Anda menggunakan objek DataContext untuk membuat koneksi antara struktur data berbasis kode dan database itu sendiri. DataContext adalah saluran utama tempat Anda mengambil objek dari database dan mengirimkan perubahan.

Anda juga mendeklarasikan Table(Of Customer) untuk bertindak sebagai tabel logis yang diketik untuk kueri Anda terhadap tabel Pelanggan dalam database. Anda akan membuat dan menjalankan kueri ini di langkah-langkah selanjutnya.

Untuk menentukan koneksi database

  • Ketik atau tempel kode berikut ke dalam metode Sub Main.

    Perhatikan bahwa file northwnd.mdf diasumsikan berada di folder linqtest. Untuk mendapatkan informasi selengkapnya, lihat bagian Prasyarat sebelumnya dalam panduan ini.

    ' Use a connection string.
    Dim db As New DataContext _
        ("c:\linqtest\northwnd.mdf")
    
    ' Get a typed table to run queries.
    Dim Customers As Table(Of Customer) = _
        db.GetTable(Of Customer)()
    

Membuat Kueri Sederhana

Dalam langkah ini, Anda membuat kueri untuk menemukan pelanggan mana dalam tabel Pelanggan database yang berada di London. Kode kueri dalam langkah ini hanya menjelaskan kueri. Kode ini tidak menjalankannya. Pendekatan ini dikenal sebagai eksekusi yang ditangguhkan. Untuk informasi selengkapnya, lihat Pengantar Kueri LINQ (C#).

Anda juga akan menghasilkan output log untuk menampilkan perintah SQL yang dihasilkan LINQ to SQL. Fitur pengelogan ini (yang menggunakan Log) sangat membantu dalam penelusuran kesalahan, dan dalam menentukan bahwa perintah yang dikirimkan ke database secara akurat mewakili kueri Anda.

Untuk membuat kueri sederhana

  • Ketik atau tempel kode berikut ke dalam metode Sub Main setelah deklarasi Table(Of Customer):

    ' Attach the log to show generated SQL in a console window.
    db.Log = Console.Out
    
    ' Query for customers in London.
    Dim custQuery = _
        From cust In Customers _
        Where cust.City = "London" _
        Select cust
    

Menjalankan Kueri

Dalam langkah ini, Anda benar-benar menjalankan kueri. Ekspresi kueri yang Anda buat di langkah-langkah sebelumnya tidak dievaluasi hingga hasilnya diperlukan. Ketika Anda memulai perulangan For Each, perintah SQL dijalankan terhadap database dan objek terwujud.

Untuk menjalankan kueri

  1. Ketik atau tempel kode berikut di akhir metode Sub Main (setelah deskripsi kueri):

    ' Format the message box.
    Dim msg As String = "", title As String = "London customers:", _
        response As MsgBoxResult, style As MsgBoxStyle = _
        MsgBoxStyle.Information
    
    ' Execute the query.
    For Each custObj In custQuery
        msg &= String.Format(custObj.CustomerID & vbCrLf)
    Next
    
    ' Display the results.
    response = MsgBox(msg, style, title)
    
  2. Tekan F5 untuk men-debug dan menjalankan aplikasi.

    Catatan

    Jika aplikasi Anda menghasilkan kesalahan run-time, lihat bagian Pemecahan Masalah Pembelajaran melalui Panduan.

    Kotak pesan menampilkan daftar enam pelanggan. Jendela Konsol menampilkan kode SQL yang dihasilkan.

  3. Klik OK untuk menutup kotak pesan.

    Aplikasi ditutup.

  4. Pada menu Berkas, klik Simpan Semua.

    Anda akan membutuhkan aplikasi ini jika Anda melanjutkan panduan berikutnya.

Langkah berikutnya

Panduan: Mengkueri Seluruh Hubungan (Visual Basic) berlanjut tempat panduan ini berakhir. Panduan Kueri Di Seluruh Hubungan menunjukkan cara LINQ to SQL dapat melakukan kueri di seluruh tabel, serupa dengan gabung dalam database hubungan.

Jika Anda ingin melakukan panduan Kueri Di Seluruh Hubungan, pastikan menyimpan solusi untuk panduan yang baru saja Anda selesaikan, yang merupakan prasyarat.

Lihat juga