Freigeben über


DbContext Klasse

Definition

Ein DbContext-instance stellt eine Kombination aus den Mustern "Arbeitseinheit" und "Repository" dar, sodass er verwendet werden kann, um aus einer Datenbank abzufragen und Änderungen zu gruppieren, die dann als Einheit zurück in den Speicher geschrieben werden. DbContext ähnelt vom Konzept her ObjectContext.

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
type DbContext = class
    interface IDisposable
    interface IObjectContextAdapter
Public Class DbContext
Implements IDisposable, IObjectContextAdapter
Vererbung
DbContext
Abgeleitet
Attribute
Implementiert

Hinweise

DbContext wird normalerweise mit einem abgeleiteten Typ verwendet, der Eigenschaften für die Stammentitäten des Modells enthält DbSet<TEntity> . Diese Sätze werden automatisch initialisiert, wenn die Instanz der abgeleiteten Klasse erstellt wird. Dieses Verhalten kann geändert werden, indem das SuppressDbSetInitializationAttribute Attribut entweder auf die gesamte abgeleitete Kontextklasse oder auf einzelne Eigenschaften der -Klasse angewendet wird. Das Entity Data Model, das den Kontext unterstützt, kann auf unterschiedliche Weise angegeben werden. Bei Verwendung des Code First-Ansatzes werden die DbSet<TEntity> Eigenschaften für den abgeleiteten Kontext verwendet, um ein Modell nach Konvention zu erstellen. Die geschützte OnModelCreating-Methode kann überschrieben werden, um dieses Modell zu optimieren. Mehr Kontrolle über das Modell, das für den Model First-Ansatz verwendet wird, können Sie erhalten, indem Sie eine DbCompiledModel explizit aus einem DbModelBuilder erstellen und dieses Modell an einen der DbContext-Konstruktoren übergeben. Bei Verwendung des Database First- oder Model First-Ansatzes kann das Entity Data Model mithilfe des Entity Designer (oder manuell durch erstellung einer EDMX-Datei) erstellt werden. Anschließend kann dieses Modell mithilfe der Entitätsverbindungszeichenfolge oder eines EntityConnection Objekts angegeben werden. Die Verbindung mit der Datenbank (einschließlich des Namens der Datenbank) kann auf unterschiedliche Weise angegeben werden. Wenn der parameterlose DbContext-Konstruktor aus einem abgeleiteten Kontext aufgerufen wird, wird der Name des abgeleiteten Kontexts verwendet, um eine Verbindungszeichenfolge in der app.config- oder web.config datei zu suchen. Wenn keine Verbindungszeichenfolge gefunden wird, wird der Name an die für die Database Klasse registrierte DefaultConnectionFactory übergeben. Die Verbindungsfactory verwendet dann den Kontextnamen als Datenbanknamen in einer Standardverbindungszeichenfolge. (Diese Standardverbindungszeichenfolge verweist auf .\SQLEXPRESS auf dem lokalen Computer, es sei denn, eine andere DefaultConnectionFactory ist registriert.) Anstatt den abgeleiteten Kontextnamen zu verwenden, kann der Verbindungs-/Datenbankname auch explizit angegeben werden, indem der Name an einen der DbContext-Konstruktoren übergeben wird, der eine Zeichenfolge akzeptiert. Der Name kann auch im Format "name=meinname" übergeben werden. In diesem Fall muss der Name in der Konfigurationsdatei vorhanden sein, andernfalls wird eine Ausnahme ausgelöst. Beachten Sie, dass die in der app.config- oder web.config-Datei gefundene Verbindung eine normale Datenbankverbindungszeichenfolge (keine spezielle Entity Framework-Verbindungszeichenfolge) sein kann. In diesem Fall verwendet DbContext Code First. Wenn die in der Konfigurationsdatei gefundene Verbindung jedoch eine spezielle Entity Framework-Verbindungszeichenfolge ist, verwendet DbContext Database/Model First, und das in der Verbindungszeichenfolge angegebene Modell wird verwendet. Statt des Datenbank-/Verbindungsnamens kann auch eine vorhandene oder explizit erstellte DbConnection verwendet werden. Ein DbModelBuilderVersionAttribute kann auf eine von DbContext abgeleitete Klasse angewendet werden, um die Version der Konventionen festzulegen, die vom Kontext beim Erstellen eines Modells verwendet werden. Wenn kein Attribut angewendet wird, wird die neueste Version von Konventionen verwendet.

Konstruktoren

DbContext()

Erstellt eine neue Kontextinstanz mit Konventionen zum Erstellen des Namens der Datenbank, mit der eine Verbindung hergestellt wird. Der konventionsbasierte Name ist der vollständige Name (Namespace + Klassenname) der abgeleiteten Kontextklasse. Informationen dazu, wie diese zum Erstellen einer Verbindung verwendet wird, finden Sie in den Klassenbemerkungen.

DbContext(DbCompiledModel)

Erstellt mit Konventionen zum Erstellen des Namens der Datenbank, mit der eine Verbindung hergestellt wird, eine neue Kontextinstanz und initialisiert sie anhand des angegebenen Modells. Der konventionsbasierte Name ist der vollständige Name (Namespace + Klassenname) der abgeleiteten Kontextklasse. Informationen dazu, wie diese zum Erstellen einer Verbindung verwendet wird, finden Sie in den Klassenbemerkungen.

DbContext(DbConnection, Boolean)

Erstellt eine neue Kontextinstanz mithilfe der vorhandenen Verbindung zum Herstellen einer Verbindung mit einer Datenbank. Die Verbindung wird nicht verworfen, wenn der Kontext verworfen wird, wenn contextOwnsConnection ist false.

DbContext(DbConnection, DbCompiledModel, Boolean)

Erstellt mithilfe der vorhandenen Verbindung zum Herstellen einer Verbindung mit einer Datenbank eine neue Kontextinstanz und initialisiert sie anhand des angegebenen Modells. Die Verbindung wird nicht verworfen, wenn der Kontext verworfen wird, wenn contextOwnsConnection ist false.

DbContext(ObjectContext, Boolean)

Erstellt einen neuen Kontext instance um einen vorhandenen ObjectContext herum.

DbContext(ObjectContext, Boolean)

Erstellt einen neuen Kontext instance um einen vorhandenen ObjectContext herum.

DbContext(String)

Erstellt eine neue Kontextinstanz mit der angegebenen Zeichenfolge als Name oder Verbindungszeichenfolge für die Datenbank, mit der eine Verbindung hergestellt wird. Informationen dazu, wie diese zum Erstellen einer Verbindung verwendet wird, finden Sie in den Klassenbemerkungen.

DbContext(String, DbCompiledModel)

Erstellt mit der angegebenen Zeichenfolge als Name oder Verbindungszeichenfolge für die Datenbank, mit der eine Verbindung hergestellt wird, eine neue Kontextinstanz und initialisiert sie anhand des angegebenen Modells. Informationen dazu, wie diese zum Erstellen einer Verbindung verwendet wird, finden Sie in den Klassenbemerkungen.

Eigenschaften

ChangeTracker

Bietet Zugriff auf Funktionen des Kontexts, die Änderungsnachverfolgung von Entitäten behandeln.

Configuration

Bietet Zugriff auf Konfigurationsoptionen für den Kontext.

Database

Erstellt eine Datenbank-instance für diesen Kontext, die Erstellungs-, Löschungs-/Existenzüberprüfungen für die zugrunde liegende Datenbank ermöglicht.

Methoden

Dispose()

Ruft die geschützte Dispose-Methode auf.

Dispose(Boolean)

Gibt den Kontext frei. Der zugrunde liegende ObjectContext wird auch verworfen, wenn es von diesem Kontext erstellt wurde oder der Besitz bei der Erstellung dieses Kontexts an diesen Kontext übergeben wurde. Die Verbindung mit der Datenbank (DbConnection -Objekt) wird ebenfalls freigegeben, wenn sie von diesem Kontext erstellt wurde oder der Besitz bei der Erstellung dieses Kontexts an diesen Kontext übergeben wurde.

Entry(Object)

Ruft ein DbEntityEntry -Objekt für die angegebene Entität ab, die Zugriff auf Informationen über die Entität und die Möglichkeit zum Ausführen von Aktionen für die Entität bietet.

Entry<TEntity>(TEntity)

Ruft ein DbEntityEntry<TEntity> -Objekt für die angegebene Entität ab, die Zugriff auf Informationen über die Entität und die Möglichkeit zum Ausführen von Aktionen für die Entität bietet.

Equals(Object)

Ein DbContext-instance stellt eine Kombination aus den Mustern "Arbeitseinheit" und "Repository" dar, sodass er verwendet werden kann, um aus einer Datenbank abzufragen und Änderungen zu gruppieren, die dann als Einheit zurück in den Speicher geschrieben werden. DbContext ähnelt vom Konzept her ObjectContext.

GetHashCode()

Ein DbContext-instance stellt eine Kombination aus den Mustern "Arbeitseinheit" und "Repository" dar, sodass er verwendet werden kann, um aus einer Datenbank abzufragen und Änderungen zu gruppieren, die dann als Einheit zurück in den Speicher geschrieben werden. DbContext ähnelt vom Konzept her ObjectContext.

GetType()

Ein DbContext-instance stellt eine Kombination aus den Mustern "Arbeitseinheit" und "Repository" dar, sodass er verwendet werden kann, um aus einer Datenbank abzufragen und Änderungen zu gruppieren, die dann als Einheit zurück in den Speicher geschrieben werden. DbContext ähnelt vom Konzept her ObjectContext.

GetValidationErrors()

Überprüft nachverfolgte Entitäten und gibt eine Sammlung von zurück, die DbEntityValidationResult Validierungsergebnisse enthält.

OnModelCreating(DbModelBuilder)

Diese Methode wird aufgerufen, wenn das Modell für einen abgeleiteten Kontext initialisiert wurde, jedoch bevor das Modell gesperrt und zum Initialisieren des Kontexts verwendet wurde. Die Standardimplementierung dieser Methode führt keine Aktion aus. Sie kann jedoch in einer abgeleiteten Klasse überschrieben werden, damit das Modell weiter konfiguriert werden kann, bevor es gesperrt wird.

SaveChanges()

Speichert alle in diesem Kontext vorgenommenen Änderungen in der zugrunde liegenden Datenbank.

SaveChangesAsync()

Speichert alle in diesem Kontext vorgenommenen Änderungen asynchron in der zugrunde liegenden Datenbank.

SaveChangesAsync(CancellationToken)

Speichert alle in diesem Kontext vorgenommenen Änderungen asynchron in der zugrunde liegenden Datenbank.

Set(Type)

Gibt einen nicht generischen DbSet instance für den Zugriff auf Entitäten des angegebenen Typs im Kontext und im zugrunde liegenden Speicher zurück.

Set<TEntity>()

Gibt einen DbSet<TEntity> instance für den Zugriff auf Entitäten des angegebenen Typs im Kontext und im zugrunde liegenden Speicher zurück.

ShouldValidateEntity(DbEntityEntry)

Erweiterungspunkt, der es dem Benutzer ermöglicht, das Standardverhalten, mit dem nur Entitäten mit dem Status Added und Modified überprüft werden, zu überschreiben.

ToString()

Ein DbContext-instance stellt eine Kombination aus den Mustern "Arbeitseinheit" und "Repository" dar, sodass er verwendet werden kann, um aus einer Datenbank abzufragen und Änderungen zu gruppieren, die dann als Einheit zurück in den Speicher geschrieben werden. DbContext ähnelt vom Konzept her ObjectContext.

ValidateEntity(DbEntityEntry, IDictionary<Object,Object>)

Erweiterungspunkt, der es dem Benutzer ermöglicht, die Validierung einer Entität anzupassen oder Validierungsergebnisse herauszufiltern. Wird von GetValidationErrors() aufgerufen.

Explizite Schnittstellenimplementierungen

IObjectContextAdapter.ObjectContext

Gibt den Entity Framework ObjectContext zurück, der diesem Kontext zugrunde liegt.

Gilt für: