Compartir a través de


Procedimiento para conectar a una base de datos

DataContext es la canalización principal mediante la cual se conecta a una base de datos, recupera los objetos de ella y le vuelve a enviar los cambios. DataContext se utiliza igual que si se tratase de un ADO.NET SqlConnection. De hecho, DataContext se inicializa con la conexión o cadena de conexión que proporcione. Para obtener más información, consulta Métodos de DataContext (Object Relational Designer).

El propósito de DataContext es convertir sus solicitudes de objetos en consultas SQL que se van a ejecutar en la base de datos y, a continuación, ensamblar los objetos a partir de los resultados. El DataContext habilita Language Integrated Query (LINQ) al implementar el mismo patrón de operador que los operadores de consulta estándar, como Where y Select.

Importante

Es fundamental mantener una conexión segura. Para obtener más información, consulta Seguridad en LINQ to SQL.

Ejemplo 1

En el ejemplo siguiente, se utiliza DataContext para establecer una conexión con la base de datos de ejemplo Northwind y recuperar las filas de clientes cuya ciudad es Londres (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

Cada tabla de base de datos se representa como una colección Table disponible a través del método GetTable, utilizando la clase de entidad para su identificación.

Ejemplo 2

El procedimiento recomendado es declarar un DataContext fuertemente tipado en lugar de confiar en la clase DataContext básica y el método GetTable. Un DataContext fuertemente tipado declara todas las colecciones Table como miembros del contexto, como en el ejemplo siguiente.

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

Después, puede expresar la consulta de clientes de Londres de manera más sencilla:

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 también