Aracılığıyla paylaş


Nasıl yapılır: Veritabanına Bağlanma

DataContext, veritabanına bağlandığınız, veritabanından nesneleri aldığınız ve değişiklikleri geri gönderdiğiniz ana kanaldır. aynı ADO.NET SqlConnectiongibi kullanırsınızDataContext. Aslında , DataContext sağladığınız bir bağlantı veya bağlantı dizesi ile başlatılır. Daha fazla bilgi için bkz. DataContext Yöntemleri (O/R Tasarım Aracı).

öğesinin DataContext amacı, nesnelere yönelik isteklerinizi veritabanında yapılacak SQL sorgularına çevirmek ve ardından sonuçların dışında nesneleri bir araya getirmektir. , DataContext ve Selectgibi Where Standart Sorgu İşleçleri ile aynı işleç desenini uygulayarak DilLe Tümleşik Sorguyu (LINQ) etkinleştirir.

Önemli

Güvenli bir bağlantının korunması en yüksek öneme sahip olandır. Daha fazla bilgi için bkz . LINQ to SQL'de güvenlik.

Örnek 1

Aşağıdaki örnekte, DataContext Northwind örnek veritabanına bağlanmak ve şehri Londra olan müşterilerin satırlarını almak için kullanılır.

// 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

Her veritabanı tablosu, varlık sınıfı kullanılarak yöntemiyle kullanılabilen GetTable bir Table koleksiyon olarak temsil edilir.

Örnek 2

En iyi yöntem, temel DataContext sınıfa ve yöntemine güvenmek yerine kesin olarak türlenmiş DataContext bir bildirmektirGetTable. Kesin olarak yazılan DataContext , aşağıdaki örnekte olduğu gibi tüm Table koleksiyonları bağlamın üyeleri olarak bildirir.

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

Daha sonra Londra'dan müşteriler için sorguyu daha basit bir şekilde ifade edebilirsiniz:

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

Ayrıca bkz.