Cara: Menyambung ke Database
DataContext adalah saluran utama yang Anda sambungkan ke database, mengambil objek darinya, dan mengirimkan perubahan kembali ke database tersebut. Anda menggunakan DataContext sama seperti anda akan menggunakan ADO.NET SqlConnection. Bahkan, DataContext diinisialisasi dengan koneksi atau string koneksi yang Anda sediakan. Untuk informasi selengkapnya, lihat Metode DataContext (O/R Designer).
Tujuan dari DataContext adalah untuk menerjemahkan permintaan Anda untuk objek ke dalam kueri SQL yang akan dibuat terhadap database, lalu merakit objek dari hasil. DataContext mengaktifkan Language-Integrated Query (LINQ) dengan menerapkan pola operator yang sama dengan Operator Kueri Standar, seperti Where
dan Select
.
Penting
Mempertahankan koneksi yang aman adalah yang paling penting. Untuk informasi selengkapnya, lihat Keamanan di LINQ to SQL.
Contoh 1
Dalam contoh berikut, DataContext digunakan untuk menyambungkan ke database sampel Northwind dan untuk mengambil baris pelanggan yang mana kotanya adalah London.
// DataContext takes a connection string.
DataContext db = new DataContext(@"c:\Northwind.mdf");
// Get a typed table to run queries.
Table<Customer> Customers = db.GetTable<Customer>();
// Query for customers from London.
var query =
from cust in Customers
where cust.City == "London"
select cust;
foreach (var cust in query)
Console.WriteLine("id = {0}, City = {1}", cust.CustomerID, cust.City);
' DataContext takes a connection string.
Dim db As New DataContext("…\Northwind.mdf")
' Get a typed table to run queries.
Dim Customers As Table(Of Customer) = db.GetTable(Of Customer)()
' Query for customer from London.
Dim Query = _
From cust In Customers _
Where cust.City = "London" _
Select cust
For Each cust In Query
Console.WriteLine("id=" & cust.CustomerID & _
", City=" & cust.City)
Next
Setiap tabel database direpresentasikan sebagai koleksi Table
yang tersedia melalui metode GetTable, dengan menggunakan kelas entitas untuk mengidentifikasinya.
Contoh 2
Praktik terbaik adalah mendeklarasikan jenis DataContext yang sangat kuat alih-alih mengandalkan kelas dasar DataContext dan metode GetTable. Jenis DataContext yang sangat kuat mendeklarasikan semua koleksi Table
sebagai anggota konteks, seperti dalam contoh berikut.
public partial class Northwind : DataContext
{
public Table<Customer> Customers;
public Table<Order> Orders;
public Northwind(string connection) : base(connection) { }
}
Partial Public Class Northwind
Inherits DataContext
Public Customers As Table(Of Customer)
Public Orders As Table(Of Order)
Public Sub New(ByVal connection As String)
MyBase.New(connection)
End Sub
End Class
Anda kemudian dapat mengekspresikan kueri untuk pelanggan dari London lebih sederhana sebagai:
Northwnd db = new Northwnd(@"c:\Northwnd.mdf");
var query =
from cust in db.Customers
where cust.City == "London"
select cust;
foreach (var cust in query)
Console.WriteLine("id = {0}, City = {1}", cust.CustomerID,
cust.City);
Dim db As New Northwind("...\Northwnd.mdf")
Dim query = _
From cust In db.Customers _
Where cust.City = "London" _
Select cust
For Each cust In query
Console.WriteLine("id=" & cust.CustomerID & _
", City=" & cust.City)
Next