Sdílet prostřednictvím


Postupy: Připojení k databázi

Jedná se DataContext o hlavní konduit, kterým se připojujete k databázi, načítáte z ní objekty a odešlete změny zpět do databáze. Použijete ADO.NET DataContext stejně, jako byste použili ADO.NET SqlConnection. Ve skutečnosti DataContext se inicializuje pomocí připojení nebo připojovací řetězec, které zadáte. Další informace naleznete v tématu Metody DataContext (Návrhář relací objektů).

Účelem je DataContext přeložit vaše požadavky na objekty do dotazů SQL, které se mají provést v databázi, a pak sestavit objekty z výsledků. Umožňuje DataContext jazykově integrovaný dotaz (LINQ) implementací stejného vzoru operátoru jako standardní operátor operátory, například Where a Select.

Důležité

Udržování zabezpečeného připojení má nejvyšší důležitost. Další informace naleznete v tématu Zabezpečení v LINQ to SQL.

Příklad 1

V následujícím příkladu DataContext se používá k připojení k ukázkové databázi Northwind a k načtení řádků zákazníků, jejichž město je Londýn.

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

Každá tabulka databáze je reprezentována jako Table kolekce dostupná metodou GetTable pomocí třídy entity k identifikaci.

Příklad 2

Osvědčeným postupem je deklarovat silné typy DataContext místo spoléhání na základní DataContext třídu a metodu GetTable . Silné typy DataContext deklarují všechny Table kolekce jako členy kontextu, jako v následujícím příkladu.

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

Dotaz pro zákazníky z Londýna pak můžete vyjádřit jednoduše takto:

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

Viz také