Megosztás a következőn keresztül:


Útmutató: Csatlakozás adatbázishoz

Ez DataContext a fő vezeték, amellyel csatlakozik egy adatbázishoz, lekéri az objektumokat belőle, és visszaküldi a módosításokat. A ADO.NET SqlConnectionugyanúgy kell használniaDataContext. Az inicializálás valójában DataContext egy megadott kapcsolattal vagy kapcsolati sztring történik. További információ: DataContext Methods (O/R Tervező).

Ennek célja, DataContext hogy az objektumokra vonatkozó kéréseket SQL-lekérdezésekké fordítsa az adatbázison, majd az eredményekből összeállítsa az objektumokat. Ez DataContext lehetővé teszi a nyelvvel integrált lekérdezést (LINQ) a standard lekérdezési operátorokkal azonos operátori minta implementálásával, például Where és Select.

Fontos

A biztonságos kapcsolat fenntartása a legfontosabb. További információ: Biztonság a LINQ-ban az SQL-ben.

1. példa

Az alábbi példában a DataContext Northwind mintaadatbázishoz való csatlakozásra és azon ügyfelek sorainak lekérésére szolgál, akiknek a városa 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

Az adatbázistáblák a metódussal GetTable elérhető gyűjteményként Table jelenik meg az entitásosztály használatával.

2. példa

Ajánlott eljárás egy erősen gépelt DataContext deklarálás, nem pedig az alaposztályra DataContext és a GetTable metódusra támaszkodni. Egy erősen gépelt DataContext objektum az összes Table gyűjteményt a környezet tagjaiként deklarálja, ahogyan az alábbi példában is látható.

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

Ezután egyszerűen kifejezheti a londoni ügyfelek lekérdezését a következő módon:

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

Lásd még