Procédure : ouvrir manuellement la connexion à partir du contexte de l'objet (Entity Framework)
Cette rubrique fournit un exemple d'ouverture manuelle d'une connexion à partir du contexte d'objet. Pour plus d'informations, voir Gestion du contexte de l'objet (Entity Framework).
L'exemple de cette rubrique est basé sur le Modèle de vente AdventureWorks Sales Model (EDM). Pour exécuter le code de cet exemple, vous devez déjà avoir ajouté le modèle de vente AdventureWorks Sales Model à votre projet et configuré ce dernier pour qu'il utilise Entity Framework. Pour ce faire, exécutez la procédure décrite dans Procédure : utiliser l'Assistant Entity Data Model (Entity Framework).
Exemple
Cet exemple ouvre manuellement la connexion, puis exécute une requête et enregistre les modifications apportées. La connexion est fermée lorsque le contexte devient hors de portée et est supprimé.
' 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.
}
Voir aussi
Tâches
Procédure : gérer la connexion dans un contexte d'objet long (Entity Framework)
Procédure : utiliser EntityConnection avec un contexte d'objet (Entity Framework)