Como: Conectar-se a um banco de dados

O DataContext é o canal principal pelo qual você se conecta a um banco de dados, recupera objetos dele e envia alterações de volta para ele. Você usa o DataContext assim como usaria um ADO.NET SqlConnection. Na verdade, o DataContext é inicializado com uma conexão ou cadeia de conexão que você fornece. Para obter mais informações, consulte Métodos DataContext (O/R Designer).

O objetivo do é traduzir suas solicitações de DataContext objetos em consultas SQL a serem feitas no banco de dados e, em seguida, montar objetos a partir dos resultados. O DataContext habilita a Consulta Integrada à Linguagem (LINQ) implementando o mesmo padrão de operador que os Operadores de Consulta Padrão, como Where e Select.

Importante

Manter uma conexão segura é da maior importância. Para obter mais informações, consulte Segurança em LINQ to SQL.

Exemplo 1

No exemplo a seguir, o DataContext é usado para se conectar ao banco de dados de exemplo Northwind e para recuperar linhas de clientes cuja cidade é Londres.

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

Cada tabela de banco de dados é representada como uma Table coleção disponível por meio do método, usando a classe de GetTable entidade para identificá-la.

Exemplo 2

A prática recomendada é declarar um fortemente tipado DataContext em vez de confiar na classe básica DataContext e no GetTable método. Um fortemente tipado DataContext declara todas as Table coleções como membros do contexto, como no exemplo a seguir.

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

Você pode então expressar a consulta para clientes de Londres de forma mais simples como:

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

Consulte também