Partager via


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)