Share via


Verwalten von Verbindungen in Object Services (Entity Framework)

Standardmäßig wird die Verbindung zur Datenbank von Object Services verwaltet. Verbindungen werden nur hergestellt, wenn es erforderlich ist, beispielsweise um Abfragen auszuführen oder um SaveChanges aufzurufen. Die Verbindung wird von Object Services beendet, nachdem der Vorgang abgeschlossen wurde.

Durch Aufrufen einer der folgenden Methoden wird die Verbindung hergestellt:

Object Services ermöglicht den Zugriff auf die EntityConnection mithilfe der Connection-Eigenschaft. Damit können Verbindungen und Transaktionen verwaltet oder eine eigene EntityConnection bereitgestellt werden. Dies ist hilfreich, wenn eine Verbindung in einem Objektkontext kurzer Laufzeit beibehalten werden soll, um die Leistung zu erhöhen oder Transaktionen explizit zu steuern. Die gleiche Anbieterverbindung, die vom Entity Framework verwendet wird, kann auch für andere Teile einer Anwendung freigegeben werden.

Folgendes sollte beim Verwalten von Verbindungen beachtet werden:

  • Die Verbindung wird im Objektkontext hergestellt, sofern dies nicht bereits vor einem Vorgang erfolgt ist. Wenn die Verbindung im Objektkontext während eines Vorgangs hergestellt wird, wird diese nach Abschluss des Vorgangs beendet.

  • Wenn die Verbindung manuell hergestellt wird, wird sie im Objektkontext nicht beendet. Durch einen Aufruf von Close oder Dispose wird die Verbindung beendet.

  • Wenn die Verbindung im Objektkontext hergestellt wird, wird diese beim Verwerfen des Vorgangs ebenfalls verworfen.

  • In einem Objektkontext mit langer Laufzeit muss sichergestellt werden, dass der Kontext verworfen wird, wenn dieser nicht mehr erforderlich ist.

  • Wenn Sie die EntityConnection für den Objektkontext bereitstellen, müssen Sie sicherstellen, dass diese verworfen wird.

Im folgenden Beispiel wird das explizite Herstellen einer Verbindung dargestellt.

' Explicitly open the connection.
advWorksContext.Connection.Open()
// Explicitly open the connection.    
advWorksContext.Connection.Open();

Weitere Informationen finden Sie unter Gewusst wie: Manuelles Öffnen der Verbindung aus dem Objektkontext (Entity Framework).

Wenn die Verbindung in einem Objektkontext mit langer Laufzeit manuell hergestellt wird, muss Dispose aufgerufen werden, um sicherzustellen, dass die Verbindung beendet wird, wenn der Kontext nicht mehr benötigt wird. Sie können auch Close für EntityConnection aufrufen, um die Verbindung explizit zu beenden. Weitere Informationen finden Sie unter Gewusst wie: Verwalten der Verbindung in einem lang andauernden Objektkontext (Entity Framework).

Object Services ermöglicht zudem das Erstellen einer EntityConnection und deren Bereitstellung im Objektkontext. In diesem Fall kann die Verbindung entweder manuell oder bei Bedarf über den Objektkontext hergestellt werden. Wenn Sie die EntityConnection im Objektkontext bereitgestellt haben, müssen Sie sicherstellen, dass sowohl der Kontext als auch die EntityConnection verworfen werden, wenn diese nicht mehr benötigt werden. Im folgenden Beispiel wird eine Verbindung erstellt und an den Objektkontext übergeben:

' Create an EntityConnection.
Dim conn As New EntityConnection("name=AdventureWorksEntities")

' Create a long-running context with the connection.
Dim advWorksContext As New AdventureWorksEntities(conn)
// Create an EntityConnection.
EntityConnection conn =
    new EntityConnection("name=AdventureWorksEntities");

// Create a long-running context with the connection.
AdventureWorksEntities advWorksContext =
    new AdventureWorksEntities(conn);

Weitere Informationen finden Sie unter Gewusst wie: Verwenden von EntityConnection mit einem Objektkontext (Entity Framework).

Siehe auch

Weitere Ressourcen

Verwalten des Objektkontexts (Entity Framework)