Cómo abrir manualmente la conexión desde el contexto del objeto (Entity Framework)

En este tema se proporciona un ejemplo de cómo abrir manualmente una conexión desde el contexto del objeto.

El ejemplo de este tema se basa en el Modelo AdventureWorks Sales. Para ejecutar el código de este ejemplo, debe haber agregado ya el modelo AdventureWorks Sales al proyecto y haber configurado el proyecto para usar Entity Framework. Para ello, complete el procedimiento de Cómo usar el Asistente para Entity Data Model (Entity Framework).

Ejemplo

En este tema se abre manualmente la conexión, se ejecuta una consulta y se guardan los cambios. La conexión se cierra cuando el contexto sale del ámbito y se elimina.

' Define the order ID for the order we want. 
Dim orderId As Integer = 43680

Using context As New AdventureWorksEntities()
    ' Explicitly open the connection. 
    context.Connection.Open()

    ' Execute a query to return an order. 
    Dim order As SalesOrderHeader = context.SalesOrderHeaders.Where("it.SalesOrderID = @orderId", _
                                        New ObjectParameter("orderId", orderId)).Execute(MergeOption.AppendOnly).First()


    ' Change the status of the order. 
    order.Status = 1

    ' Save changes. 
    If 0 < context.SaveChanges() Then
        Console.WriteLine("Changes saved.")
    End If
    ' The connection is closed when the object context 
    ' is disposed because it is no longer in scope. 
End Using
// Define the order ID for the order we want.
int orderId = 43680;

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    // Explicitly open the connection.    
    context.Connection.Open();

    // Execute a query to return an order.
    SalesOrderHeader order =
        context.SalesOrderHeaders.Where(
        "it.SalesOrderID = @orderId", new ObjectParameter("orderId", orderId))
        .Execute(MergeOption.AppendOnly).First();


    // Change the status of the order.
    order.Status = 1;

    // Save changes.
    if (0 < context.SaveChanges())
    {
        Console.WriteLine("Changes saved.");
    }
    // The connection is closed when the object context
    // is disposed because it is no longer in scope.
}

Vea también

Tareas

Cómo administrar la conexión en un contexto del objeto de larga duración (Entity Framework)
Cómo usar EntityConnection con un contexto del objeto (Entity Framework)