Gestion des connexions dans Object Services (Entity Framework)

Par défaut, Object Services gère la connexion à la base de données. Object Services ouvre des connexions uniquement lorsque cela est requis, par exemple pour exécuter une requête ou appeler SaveChanges. Object Services ferme ensuite la connexion, une fois l'opération terminée.

L'appel d'une des méthodes suivantes ouvre la connexion :

Object Services expose l'objet EntityConnection au moyen de la propriété Connection. Cela vous permet de gérer la connexion et les transactions ou de fournir votre propre EntityConnection. Cela est utile lorsque vous souhaitez maintenir ouverte une connexion dans un contexte d'objet à courte durée de vie pour améliorer les performances ou contrôler explicitement les transactions. Une même connexion de fournisseur utilisée par Entity Framework peut être partagée avec d'autres parties d'une application.

Les considérations suivantes s'appliquent lors de la gestion des connexions :

  • Le contexte d'objet ouvrira la connexion si elle n'est pas déjà ouverte avant une opération. Si le contexte d'objet ouvre la connexion pendant une opération, il fermera toujours la connexion une fois l'opération terminée.

  • Si vous ouvrez manuellement la connexion, le contexte d'objet ne la fermera pas. L'appel de Close ou de Dispose fermera la connexion.

  • Si le contexte d'objet crée la connexion, la connexion sera toujours supprimée lorsque le contexte sera supprimé.

  • Dans un contexte d'objet long, vous devez garantir la suppression du contexte lorsqu'il n'est plus requis.

  • Si vous fournissez l'objet EntityConnection pour le contexte d'objet, vous devez vous assurer qu'il est supprimé.

L'exemple suivant montre comment ouvrir explicitement une connexion.

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

Pour plus d'informations, voir Procédure : ouvrir manuellement la connexion à partir du contexte de l'objet (Entity Framework).

Lorsque vous ouvrez manuellement la connexion dans un contexte d'objet long, vous devez appeler Dispose pour garantir la fermeture de la connexion lorsque le contexte n'est plus requis. Vous pouvez également appeler Close sur l'objet EntityConnection pour fermer explicitement la connexion. Pour plus d'informations, voir Procédure : gérer la connexion dans un contexte d'objet long (Entity Framework).

Object Services vous permet de créer un objet EntityConnection et de fournir cette connexion au contexte d'objet. Dans ce cas, vous pouvez ouvrir la connexion manuellement ou autoriser le contexte d'objet à l'ouvrir, si nécessaire. Une fois que vous avez fourni l'objet EntityConnection au contexte d'objet, vous devez vous assurer que le contexte et l'objet EntityConnection sont supprimés lorsqu'ils ne sont plus requis. L'exemple suivant crée une connexion et la transmet au contexte d'objet :

' 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);

Pour plus d'informations, voir Procédure : utiliser EntityConnection avec un contexte d'objet (Entity Framework).

Voir aussi

Autres ressources

Gestion du contexte de l'objet (Entity Framework)