DbContext, classe

[Cette page concerne Entity Framework version 6. La dernière version est disponible sous le nom de package 'Entity Framework' NuGet. Pour plus d'informations sur Entity Framework, consultez msdn.com/data/ef.]

Une instance DbContext représente une combinaison de modèles d'unité de travail et de référentiel pouvant être utilisée pour interroger une base de données et un groupe simultanément de sorte que les modifications seront ensuite réécrites sur le magasin sous la forme d'une unité. DbContext est conceptuellement semblable à ObjectContext.

Hiérarchie d'héritage

System.Object
  System.Data.Entity.DbContext
    System.Data.Entity.Infrastructure.TransactionContext
    System.Data.Entity.Migrations.History.HistoryContext

Espace de noms :  System.Data.Entity
Assembly :  EntityFramework (dans EntityFramework.dll)

Syntaxe

'Déclaration
Public Class DbContext _
    Implements IDisposable, IObjectContextAdapter
'Utilisation
Dim instance As DbContext
public class DbContext : IDisposable, IObjectContextAdapter
public ref class DbContext : IDisposable, 
    IObjectContextAdapter
type DbContext =  
    class 
        interface IDisposable 
        interface IObjectContextAdapter 
    end
public class DbContext implements IDisposable, IObjectContextAdapter

Le type DbContext expose les membres suivants.

Constructeurs

  Nom Description
Méthode protégée DbContext() Construit une nouvelle instance de contexte à l'aide de conventions pour créer le nom de la base de données sur laquelle une connexion sera établie.Par convention, le nom est le nom complet (espace de noms + nom de classe) de la classe de contexte dérivée.Consultez les notes de la classe pour savoir comment l'utiliser pour créer une connexion.
Méthode publique DbContext(String) Construit une nouvelle instance de contexte à l'aide de la chaîne donnée, comme le nom ou la chaîne de connexion de la base de données sur laquelle une connexion sera établie.Consultez les notes de la classe pour savoir comment l'utiliser pour créer une connexion.
Méthode protégée DbContext(DbCompiledModel) Construit une nouvelle instance de contexte à l'aide de conventions pour créer le nom de la base de données sur laquelle une connexion sera établie et l'initialise à partir du modèle donné.Par convention, le nom est le nom complet (espace de noms + nom de classe) de la classe de contexte dérivée.Consultez les notes de la classe pour savoir comment l'utiliser pour créer une connexion.
Méthode publique DbContext(DbConnection, Boolean) Construit une nouvelle instance de contexte à l'aide de la connexion existante pour se connecter à une base de données.La connexion ne sera pas supprimée en même temps que le contexte si contextOwnsConnection a la valeur false.
Méthode publique DbContext(String, DbCompiledModel) Construit une nouvelle instance de contexte à l'aide de la chaîne donnée, comme le nom ou la chaîne de connexion de la base de données sur laquelle une connexion sera établie, et l'initialise pour le modèle donné.Consultez les notes de la classe pour savoir comment l'utiliser pour créer une connexion.
Méthode publique DbContext(ObjectContext, Boolean) Construit une nouvelle instance de contexte autour d'un ObjectContext existant.
Méthode publique DbContext(DbConnection, DbCompiledModel, Boolean) Construit une nouvelle instance de contexte à l'aide de la connexion existante pour la connexion à une base de données, et l'initialise à partir du modèle donné.La connexion ne sera pas supprimée en même temps que le contexte si contextOwnsConnection a la valeur false.

Top

Propriétés

  Nom Description
Propriété publique ChangeTracker Fournit l'accès aux fonctionnalités du contexte relatives au suivi des modifications d'entités.
Propriété publique Configuration Fournit l'accès aux options de configuration pour le contexte.
Propriété publique Database Crée une instance de base de données pour ce contexte et vous permet de créer, supprimer ou vérifier l'existence de la base de données sous-jacente.

Top

Méthodes

  Nom Description
Méthode publique Dispose() Appelle la méthode Dispose protégée.
Méthode protégée Dispose(Boolean) Supprime le contexte.Le ObjectContext sous-jacent est également supprimé s'il a été créé par ce contexte ou si la propriété a été passée à ce contexte lorsque ce contexte a été créé.La connexion à la base de données (objet DbConnection ) est également supprimée si elle a été créé par ce contexte ou si la propriété a été passée à ce contexte lorsque ce contexte a été créé.
Méthode publique Entry(Object) Obtient un objet DbEntityEntry pour l'entité spécifique, qui fournit l'accès aux informations sur l'entité et la capacité d'effectuer des actions sur l'entité.
Méthode publique Entry<TEntity>(TEntity) Obtient un objet DbEntityEntry<TEntity> pour l'entité spécifique, qui fournit l'accès aux informations sur l'entité et la capacité d'effectuer des actions sur l'entité.
Méthode publique Equals Détermine si l'objet DbContext spécifié est identique au DbContext actuel. (Substitue Object.Equals(Object).)
Méthode protégée Finalize (Hérité de Object.)
Méthode publique GetHashCode Retourne la fonction de hachage pour cet objet DbContext. (Substitue Object.GetHashCode().)
Méthode publique GetType Renvoie le type du DbContext actuel.
Méthode publique GetValidationErrors Valide des entités suivies et retourne une collection de DbEntityValidationResult qui contient les résultats de la validation.
Méthode protégée MemberwiseClone (Hérité de Object.)
Méthode protégée OnModelCreating Cette méthode est appelée lorsque le modèle d'un contexte dérivé a été initialisé, mais avant que le modèle ne soit verrouillé et utilisé pour initialiser le contexte.L'implémentation par défaut de cette méthode n'a aucun effet, mais elle peut être substituée dans une classe dérivée afin que le modèle puisse être configuré ultérieurement avant qu'il ne soit verrouillé.
Méthode publique SaveChanges Enregistre toutes les modifications effectuées dans ce contexte dans la base de données sous-jacente.
Méthode publique SaveChangesAsync() Enregistre de façon asynchrone toutes les modifications effectuées dans ce contexte dans la base de données sous-jacente.
Méthode publique SaveChangesAsync(CancellationToken) Enregistre de façon asynchrone toutes les modifications effectuées dans ce contexte dans la base de données sous-jacente.
Méthode publique Set(Type) Retourne une instance DbSet non générique pour l'accès aux entités du type donné dans le contexte et le magasin sous-jacent.
Méthode publique Set<TEntity>() Retourne une instance DbSet<TEntity> pour l'accès aux entités du type donné dans le contexte et le magasin sous-jacent.
Méthode protégée ShouldValidateEntity Point d'extension qui autorise l'utilisateur à substituer le comportement par défaut de la validation des entités ajoutées ou modifiées uniquement.
Méthode publique ToString Retourne sous forme de chaîne de DbContext. (Substitue Object.ToString().)
Méthode protégée ValidateEntity Point d'extension qui permet à l'utilisateur de personnaliser la validation d'une entité ou de filtrer les résultats de la validation.Appelée par GetValidationErrors().

Top

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface explicitePropriété privée IObjectContextAdapter.ObjectContext Retourne l'ObjectContext Entity Framework qui est sous ce contexte.

Top

Notes

DbContext est utilisé habituellement avec un type dérivé qui contient des propriétés DbSet<TEntity> pour les entités racine du modèle. Ces ensembles sont initialisés automatiquement lorsque l'instance de la classe dérivée est créée. Ce comportement peut être modifié en appliquant l'attribut SuppressDbSetInitializationAttribute à la classe de contexte dérivée entière, ou aux propriétés individuelles sur la classe. L'Entity Data Model qui soutient le contexte peut être spécifié de plusieurs façons. En cas d'utilisation de l'approche « Code First », les propriétés DbSet<TEntity> sur le contexte dérivé sont utilisées pour générer un modèle par convention. La méthode OnModelCreating protégée peut être substituée pour modifier ce modèle. Un contrôle plus granulaire sur le modèle utilisé pour l'approche « Model First » peut être obtenu en créant explicitement un DbCompiledModel à partir d'un DbModelBuilder et en passant ce modèle à l'un des constructeurs DbContext. Lors de l'utilisation de l'approche « Database First » ou « Model First », l'Entity Data Model peut être créé à l'aide du Concepteur d'entités (ou manuellement, en créant un fichier EDMX) puis, ce modèle peut être spécifié à l'aide d'une chaîne de connexion d'entité ou d'un objet EntityConnection. La connexion à la base de données (y compris le nom de la base de données) peut être spécifiée de différentes façons. Si le constructeur DbContext sans paramètre est appelé à partir d'un contexte dérivé, le même nom de contexte dérivé est utilisé pour trouver une chaîne de connexion dans le fichier app.config ou web.config. Si aucune chaîne de connexion n'est trouvée, le nom est passé au DefaultConnectionFactory enregistré sur la classe Database. La fabrique de connexions utilise ensuite le nom de contexte comme nom de base de données dans une chaîne de connexion par défaut. (Cette chaîne de connexion par défaut pointe sur \SQLEXPRESS sur l'ordinateur local à moins qu'un DefaultConnectionFactory différent soit enregistré.) Au lieu d'utiliser le nom de contexte dérivé, le nom de connexion/nom de base de données peut également être spécifié explicitement en le passant à l'un des constructeurs DbContext qui utilise une chaîne. Le nom peut également être passé sous la forme « name=myname », auquel cas il doit être recherché dans le fichier de configuration, ou bien une exception est levée. Notez que la connexion recherchée dans le fichier app.config ou web.config peut être une chaîne de connexion de base de données normale (pas une chaîne de connexion Entity Framework spéciale), auquel cas le DbContext utilisera l'approche « Code First ». Toutefois, si la connexion trouvée dans le fichier de configuration est une chaîne de connexion Entity Framework spéciale, alors, le DbContext utilisera l'approche Database/Model First et le modèle spécifié dans la chaîne de connexion sera utilisé. Un DbConnection existant ou créé explicitement peut également être utilisé au lieu du nom de base de données/connexion. Un DbModelBuilderVersionAttribute peut être appliqué à une classe dérivée de DbContext pour définir la version des conventions utilisées par le contexte lorsqu'il crée un modèle. Si aucun attribut n'est appliqué, alors la dernière version des conventions sera utilisée.

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.

Voir aussi

Référence

Espace de noms System.Data.Entity