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. Para obtener más información, vea Administrar el contexto del objeto (Entity Framework).
El ejemplo de este tema se basa en el Modelo AdventureWorks Sales (EDM). 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 = 43661
Using advWorksContext As New AdventureWorksEntities()
Try
' Explicitly open the connection.
advWorksContext.Connection.Open()
' Execute a query to return an order.
Dim order As SalesOrderHeader = _
advWorksContext.SalesOrderHeader.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 < advWorksContext.SaveChanges() Then
Console.WriteLine("Changes saved.")
End If
Catch ex As InvalidOperationException
Console.WriteLine(ex.ToString())
End Try
' 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 = 43661;
using (AdventureWorksEntities advWorksContext =
new AdventureWorksEntities())
{
try
{
// Explicitly open the connection.
advWorksContext.Connection.Open();
// Execute a query to return an order.
SalesOrderHeader order =
advWorksContext.SalesOrderHeader.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 < advWorksContext.SaveChanges())
{
Console.WriteLine("Changes saved.");
}
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.ToString());
}
// 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)