Freigeben über


Gewusst wie: Manuelles Öffnen der Verbindung aus dem Objektkontext (Entity Framework)

In diesem Thema wird anhand eines Beispiels gezeigt, wie Sie eine Verbindung aus dem Objektkontext manuell herstellen können. Weitere Informationen finden Sie unter Verwalten des Objektkontexts (Entity Framework).

Das Beispiel in diesem Thema beruht auf dem AdventureWorks Sales-Modell (EDM). Zum Ausführen des Codes in diesem Beispiel müssen Sie dem Projekt bereits das "AdventureWorks Sales"-Modell hinzugefügt haben und das Projekt zur Verwendung von Entity Framework konfiguriert haben. Führen Sie dazu das Verfahren in Gewusst wie: Verwenden des Assistenten für Entity Data Model (Entity Framework) aus.

Beispiel

In diesem Beispiel wird die Verbindung manuell geöffnet, dann wird eine Abfrage durchgeführt, und die Änderungen werden gespeichert. Die Verbindung wird geschlossen, wenn sich der Kontext nicht mehr im Gültigkeitsbereich befindet und verworfen wird.

' 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.
}

Siehe auch

Aufgaben

Gewusst wie: Verwalten der Verbindung in einem lang andauernden Objektkontext (Entity Framework)
Gewusst wie: Verwenden von EntityConnection mit einem Objektkontext (Entity Framework)