Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini menyediakan skenario end-to-end LINQ ke SQL yang mendasar dengan kompleksitas minimal. Anda akan membuat kelas entitas yang memodelkan tabel Pelanggan dalam sampel database Northwind. Anda kemudian akan membuat kueri sederhana untuk mencantumkan pelanggan yang berlokasi di London.
Panduan ini dirancang berorientasi pada kode untuk menunjukkan konsep LINQ ke SQL. Biasanya, Anda akan menggunakan Object Relational Designer untuk membuat model objek Anda.
Nota
Komputer Anda mungkin menampilkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam instruksi berikut. Edisi Visual Studio yang Anda miliki dan pengaturan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi lebih lanjut, lihat Mempersonalisasi IDE.
Panduan ini ditulis dengan 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 bisa mengunduhnya dari situs unduhan Microsoft. Untuk petunjuknya, lihat Mengunduh Database Sampel. Setelah Anda mengunduh database, salin file ke folder c:\linqtest.
Gambaran Umum
Panduan ini terdiri dari enam tugas utama:
Membuat solusi LINQ ke 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 ke SQL
Dalam tugas pertama ini, Anda membuat solusi Visual Studio yang berisi referensi yang diperlukan untuk membangun dan menjalankan LINQ ke proyek SQL.
Untuk membuat solusi LINQ ke SQL
Pada menu File , klik Proyek Baru.
Di panel Tipe proyek dari kotak dialog Proyek Baru , klik Visual Basic.
Di panel Templat, klik Aplikasi Konsol.
Dalam kotak Nama , ketik LinqConsoleApp.
Klik OK.
Menambahkan Referensi dan Arahan LINQ
Panduan ini menggunakan komponen perangkat lunak yang mungkin tidak terinstal secara default di proyek Anda. Jika System.Data.Linq tidak tercantum sebagai referensi dalam proyek Anda (klik Perlihatkan Semua File di Penjelajah Solusi dan perluas simpul Referensi ), tambahkan, seperti yang dijelaskan dalam langkah-langkah berikut.
Untuk menambahkan System.Data.Linq
Di Penjelajah Solusi, klik kanan Referensi, lalu klik Tambahkan Referensi.
Dalam kotak dialog Tambahkan Referensi , klik .NET, klik rakitan System.Data.Linq, lalu klik OK.
Rakitan tersebut ditambahkan ke proyek.
Juga dalam kotak dialog Tambahkan Referensi , klik .NET, gulir ke dan klik System.Windows.Forms, lalu klik OK.
Assembly ini, yang mendukung kotak dialog pesan di panduan langkah demi langkah, ditambahkan ke proyek.
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 dilakukan hanya dengan menambahkan TableAttribute atribut . Properti Name menentukan nama tabel dalam database.
Untuk membuat kelas entitas dan memetakannya ke tabel database
Ketik atau tempel kode berikut ke Module1.vb tepat di atas
Sub Main:<Table(Name:="Customers")> _ Public Class Customer End Class
Menetapkan Properti pada Kelas untuk Mewakili Kolom Basis Data
Dalam langkah ini, Anda menyelesaikan beberapa tugas.
Anda menggunakan ColumnAttribute atribut untuk menunjuk
CustomerIDdanCityproperti pada kelas entitas sebagai mewakili kolom dalam tabel database.Anda menunjuk
CustomerIDproperti sebagai mewakili kolom kunci utama dalam database.Anda menunjuk
_CustomerIDdan_Citybidang untuk penyimpanan privat. LINQ ke SQL kemudian dapat menyimpan dan mengambil nilai secara langsung, alih-alih menggunakan aksesor publik yang mungkin 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 DataContext objek 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 selanjutnya.
Untuk menentukan koneksi database
Ketik atau tempel kode berikut ke
Sub Maindalam metode .Perhatikan bahwa
northwnd.mdffile diasumsikan berada di folder linqtest. Untuk informasi selengkapnya, lihat bagian Prasyarat sebelumnya di 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 terletak di London. Kode kueri dalam langkah ini hanya menjelaskan kueri. Itu tidak mengeksekusinya. 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 ke SQL. Fitur pencatatan log ini (yang menggunakan Log) sangat membantu dalam penelusuran kesalahan, dan dalam menentukan bahwa perintah yang dikirim ke database secara akurat mewakili kueri Anda.
Untuk membuat kueri sederhana
Ketik atau tempelkan kode berikut ke dalam metode
Sub Mainsetelah deklarasiTable(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 sebelumnya tidak dievaluasi hingga hasilnya diperlukan. Saat Anda memulai iterasi For Each , perintah SQL dijalankan terhadap database dan objek diwujudkan.
Untuk menjalankan kueri
Ketik atau tempel kode berikut di akhir
Sub Mainmetode (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)Tekan F5 untuk men-debug aplikasi.
Nota
Jika aplikasi Anda menghasilkan kesalahan runtime, lihat bagian Pemecahan Masalah Pembelajaran menurut Panduan.
Kotak pesan menampilkan daftar enam pelanggan. Jendela Konsol menampilkan kode SQL yang dihasilkan.
Klik OK untuk menutup kotak pesan.
Aplikasi ditutup.
Pada menu Berkas, klik Simpan Semua.
Anda akan memerlukan aplikasi ini jika Anda melanjutkan panduan berikutnya.
Langkah Selanjutnya
Panduan: Mengkueri Seluruh Hubungan (Visual Basic) berlanjut di mana panduan ini berakhir. Panduan Kueri Lintas Hubungan menunjukkan bagaimana LINQ ke SQL dapat mengkueri di seluruh tabel, mirip dengan gabungan dalam database relasional.
Jika Anda ingin melakukan panduan Kueri Lintas Hubungan, pastikan untuk menyimpan solusi untuk panduan yang baru saja Anda selesaikan, yang merupakan prasyarat.