Taal
Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Gebruik System.Data.SqlClient niet voor nieuwe ontwikkeling. Gebruik Microsoft. Data.SqlClient voor nieuwe SQL Server code voor gegevenstoegang. Deze voorbeelden behouden System.Data.SqlClient omdat de ingebouwde LINQ to SQL-provider van .NET Framework dit vereist. Als u alleen het verbindingstype wijzigt, wordt LINQ to SQL niet gemigreerd.
Dit DataContext is het belangrijkste conduit waarmee u verbinding maakt met een database, objecten ervan ophaalt en wijzigingen naar de database verzendt. U gebruikt de DataContext net zoals u een ADO.NET SqlConnection zou gebruiken. In feite wordt de DataContext geïnitialiseerd met een verbinding of verbindingsreeks die u opgeeft. Zie DataContext Methods (O/R Designer) voor meer informatie.
Het doel van het DataContext is om uw aanvragen voor objecten te vertalen naar SQL-query's die moeten worden uitgevoerd op de database en vervolgens objecten uit de resultaten te verzamelen.
DataContext maakt Language-Integrated Query (LINQ) mogelijk door hetzelfde operatorpatroon te implementeren als de standaardqueryoperators, zoals Where en Select.
Important
Het onderhouden van een beveiligde verbinding is van het hoogste belang. Zie Beveiliging in LINQ naar SQL voor meer informatie.
Voorbeeld 1
In het volgende voorbeeld wordt het DataContext gebruikt om verbinding te maken met de voorbeelddatabase Northwind en om rijen op te halen van klanten uit de stad Londen.
// Do not use System.Data.SqlClient for new development; use Microsoft.Data.SqlClient.
// LINQ to SQL's built-in provider requires System.Data.SqlClient.
// 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);
' Do not use System.Data.SqlClient for new development; use Microsoft.Data.SqlClient.
' LINQ to SQL's built-in provider requires System.Data.SqlClient.
' 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
Elke databasetabel wordt weergegeven als een Table verzameling die beschikbaar is via de GetTable methode, door de entiteitsklasse te gebruiken om deze te identificeren.
Voorbeeld 2
Het is een best practice om een sterk getypeerde DataContext te declareren in plaats van te vertrouwen op de basisklasse DataContext en de methode GetTable. Een sterk getypte DataContext definieert alle Table-verzamelingen als onderdeel van de context, zoals in het volgende voorbeeld.
// Do not use System.Data.SqlClient for new development; use Microsoft.Data.SqlClient.
// LINQ to SQL's built-in provider requires System.Data.SqlClient.
public partial class Northwind : DataContext
{
public Table<Customer> Customers;
public Table<Order> Orders;
public Northwind(string connection) : base(connection) { }
}
' Do not use System.Data.SqlClient for new development; use Microsoft.Data.SqlClient.
' LINQ to SQL's built-in provider requires System.Data.SqlClient.
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
Vervolgens kunt u de query voor klanten uit Londen uitdrukken als:
// Do not use System.Data.SqlClient for new development; use Microsoft.Data.SqlClient.
// LINQ to SQL's built-in provider requires System.Data.SqlClient.
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);
' Do not use System.Data.SqlClient for new development; use Microsoft.Data.SqlClient.
' LINQ to SQL's built-in provider requires System.Data.SqlClient.
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