DbContext Klasse

Definition

Eine dbcontext-Instanz stellt eine Sitzung mit der Datenbank dar und kann zum Abfragen und Speichern von Instanzen Ihrer Entitäten verwendet werden. Dbcontext ist eine Kombination aus Arbeitseinheit und Repository-Mustern.

public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
public class DbContext : IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbQueryCache, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
public class DbContext : IAsyncDisposable, IDisposable, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies, Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable, Microsoft.EntityFrameworkCore.Internal.IDbSetCache
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
type DbContext = class
    interface IDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbQueryCache
    interface IDbContextPoolable
type DbContext = class
    interface IDisposable
    interface IAsyncDisposable
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
    interface IResettableService
Public Class DbContext
Implements IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IDbContextDependencies, IDbContextPoolable, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IDbContextDependencies, IDbContextPoolable, IDbQueryCache, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Public Class DbContext
Implements IAsyncDisposable, IDbContextDependencies, IDbContextPoolable, IDbSetCache, IDisposable, IInfrastructure(Of IServiceProvider)
Vererbung
DbContext
Implementiert
IInfrastructure<IServiceProvider> IDisposable Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable Microsoft.EntityFrameworkCore.Internal.IDbSetCache Microsoft.EntityFrameworkCore.Internal.IDbQueryCache IResettableService IAsyncDisposable

Hinweise

In der Regel erstellen Sie eine Klasse, die von dbcontext abgeleitet ist und DbSet<TEntity> Eigenschaften für jede Entität im Modell enthält. Wenn die DbSet<TEntity> Eigenschaften über einen öffentlichen Setter verfügen, werden Sie automatisch initialisiert, wenn die Instanz des abgeleiteten Kontexts erstellt wird.

Überschreiben OnConfiguring(DbContextOptionsBuilder) Sie die-Methode, um die Datenbank (und andere Optionen) zu konfigurieren, die für den Kontext verwendet werden sollen. Wenn Sie stattdessen die Konfiguration extern anstelle von Inline in ihrem Kontext durchführen möchten, können Sie DbContextOptionsBuilder<TContext> (oder) verwenden, DbContextOptionsBuilder um eine Instanz von DbContextOptions<TContext> (oder) extern zu erstellen DbContextOptions und Sie an einen Basiskonstruktor von zu übergeben DbContext .

Das Modell wird ermittelt, indem ein Satz von Konventionen für die Entitäts Klassen ausgeführt wird, die in den DbSet<TEntity> Eigenschaften des abgeleiteten Kontexts gefunden werden. Um das von der Konvention erkannte Modell weiter zu konfigurieren, können Sie die- OnModelCreating(ModelBuilder) Methode überschreiben.

Konstruktoren

DbContext()

Initialisiert eine neue Instanz der DbContext-Klasse. Der OnConfiguring(DbContextOptionsBuilder) die-Methode wird aufgerufen, um die Datenbank (und andere Optionen) zu konfigurieren, die für diesen Kontext verwendet werden soll.

DbContext(DbContextOptions)

Initialisiert eine neue Instanz der- DbContext Klasse unter Verwendung der angegebenen Optionen. Die- OnConfiguring(DbContextOptionsBuilder) Methode wird dennoch aufgerufen, um eine weitere Konfiguration der Optionen zuzulassen.

Eigenschaften

ChangeTracker

Ermöglicht den Zugriff auf Informationen und Vorgänge für Entitäts Instanzen, die dieser Kontext nachverfolgt.

ContextId

Ein eindeutiger Bezeichner für die Kontext Instanz und die poollease, falls vorhanden.

Dieser Bezeichner ist hauptsächlich als Korrelations-ID für die Protokollierung und das Debuggen gedacht, sodass es leicht zu erkennen ist, dass mehrere Ereignisse dieselben oder unterschiedliche Kontext Instanzen verwenden.

Database

Ermöglicht den Zugriff auf datenbankbezogene Informationen und Vorgänge für diesen Kontext.

Model

Die Metadaten über die Form der Entitäten, die Beziehungen zwischen Ihnen und deren Zuordnung zur Datenbank.

Methoden

Add(Object)

Beginnt, die angegebene Entität und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

Add<TEntity>(TEntity)

Beginnt, die angegebene Entität und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

AddAsync(Object, CancellationToken)

Beginnt, die angegebene Entität und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

Diese Methode ist asynchron, um spezielle Wert Generatoren zuzulassen, wie z. b. die von Microsoft. entityframeworkcore. Metadata. sqlservervaluegenerationstrategy. sequencehilo verwendete, um asynchron auf die Datenbank zuzugreifen. Für alle anderen Fälle sollte die nicht Async-Methode verwendet werden.

AddAsync<TEntity>(TEntity, CancellationToken)

Beginnt, die angegebene Entität und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

Diese Methode ist asynchron, um spezielle Wert Generatoren zuzulassen, wie z. b. die von Microsoft. entityframeworkcore. Metadata. sqlservervaluegenerationstrategy. sequencehilo verwendete, um asynchron auf die Datenbank zuzugreifen. Für alle anderen Fälle sollte die nicht Async-Methode verwendet werden.

AddRange(IEnumerable<Object>)

Beginnt, die angegebenen Entitäten und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

AddRange(Object[])

Beginnt, die angegebenen Entitäten und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

AddRangeAsync(IEnumerable<Object>, CancellationToken)

Beginnt, die angegebene Entität und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

Diese Methode ist asynchron, um spezielle Wert Generatoren zuzulassen, wie z. b. die von Microsoft. entityframeworkcore. Metadata. sqlservervaluegenerationstrategy. sequencehilo verwendete, um asynchron auf die Datenbank zuzugreifen. Für alle anderen Fälle sollte die nicht Async-Methode verwendet werden.

AddRangeAsync(Object[])

Beginnt, die angegebene Entität und alle anderen erreichbaren Entitäten zu verfolgen, die noch nicht nachverfolgt werden, und zwar in dem Zustand, in dem Added Sie in die Datenbank eingefügt werden, wenn SaveChanges() aufgerufen wird.

Diese Methode ist asynchron, um spezielle Wert Generatoren zuzulassen, wie z. b. die von Microsoft. entityframeworkcore. Metadata. sqlservervaluegenerationstrategy. sequencehilo verwendete, um asynchron auf die Datenbank zuzugreifen. Für alle anderen Fälle sollte die nicht Async-Methode verwendet werden.

Attach(Object)

Startet die Nachverfolgung der angegebenen Entität und der Einträge, die von der angegebenen Entität erreichbar Unchanged sind, standardmäßig unter Verwendung des-Zustands. siehe unten für Fälle, in denen ein anderer Zustand verwendet wird

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Unchanged . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass nur neue Entitäten eingefügt werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Unchanged .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

Attach<TEntity>(TEntity)

Startet die Nachverfolgung der angegebenen Entität und der Einträge, die von der angegebenen Entität erreichbar Unchanged sind, standardmäßig unter Verwendung des-Zustands. siehe unten für Fälle, in denen ein anderer Zustand verwendet wird

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Unchanged . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass nur neue Entitäten eingefügt werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Unchanged .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

AttachRange(IEnumerable<Object>)

Beginnt, die angegebenen Entitäten und Einträge, die von den angegebenen Entitäten erreichbar Unchanged sind, standardmäßig mit dem-Status zu verfolgen, aber siehe unten für Fälle, in denen ein anderer Status verwendet wird.

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Unchanged . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass nur neue Entitäten eingefügt werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Unchanged .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

AttachRange(Object[])

Beginnt, die angegebenen Entitäten und Einträge, die von den angegebenen Entitäten erreichbar Unchanged sind, standardmäßig mit dem-Status zu verfolgen, aber siehe unten für Fälle, in denen ein anderer Status verwendet wird.

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Unchanged . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass nur neue Entitäten eingefügt werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Unchanged .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

Dispose()

Gibt die zugeordneten Ressourcen für diesen kontextfrei.

DisposeAsync()

Gibt die zugeordneten Ressourcen für diesen kontextfrei.

Entry(Object)

Ruft ein EntityEntry für die angegebene Entität ab. Der-Eintrag ermöglicht den Zugriff auf Änderungs nach Verfolgungs Informationen und-Vorgänge für die-Entität.

Diese Methode kann für eine Entität aufgerufen werden, die nicht nachverfolgt wird. Anschließend können Sie die- State Eigenschaft für den zurückgegebenen Eintrag so festlegen, dass der Kontext mit dem Nachverfolgen der Entität im angegebenen Zustand beginnt.

Entry<TEntity>(TEntity)

Ruft ein EntityEntry<TEntity> für die angegebene Entität ab. Der-Eintrag ermöglicht den Zugriff auf Änderungs nach Verfolgungs Informationen und-Vorgänge für die-Entität.

Find(Type, Object[])

Sucht eine Entität mit den angegebenen Primärschlüsselwerten. Wenn eine Entität mit den angegebenen Primärschlüssel Werten vom Kontext nachverfolgt wird, wird Sie sofort zurückgegeben, ohne dass eine Anforderung an die Datenbank gesendet wird. Andernfalls wird eine Abfrage für eine Entität mit den angegebenen Primärschlüssel Werten an die Datenbank gesendet, und diese Entität wird, sofern gefunden, an den Kontext angefügt und zurückgegeben. Wenn keine Entität gefunden wird, wird NULL zurückgegeben.

Find<TEntity>(Object[])

Sucht eine Entität mit den angegebenen Primärschlüsselwerten. Wenn eine Entität mit den angegebenen Primärschlüssel Werten vom Kontext nachverfolgt wird, wird Sie sofort zurückgegeben, ohne dass eine Anforderung an die Datenbank gesendet wird. Andernfalls wird eine Abfrage für eine Entität mit den angegebenen Primärschlüssel Werten an die Datenbank gesendet, und diese Entität wird, sofern gefunden, an den Kontext angefügt und zurückgegeben. Wenn keine Entität gefunden wird, wird NULL zurückgegeben.

FindAsync(Type, Object[])

Sucht eine Entität mit den angegebenen Primärschlüsselwerten. Wenn eine Entität mit den angegebenen Primärschlüssel Werten vom Kontext nachverfolgt wird, wird Sie sofort zurückgegeben, ohne dass eine Anforderung an die Datenbank gesendet wird. Andernfalls wird eine Abfrage für eine Entität mit den angegebenen Primärschlüssel Werten an die Datenbank gesendet, und diese Entität wird, sofern gefunden, an den Kontext angefügt und zurückgegeben. Wenn keine Entität gefunden wird, wird NULL zurückgegeben.

FindAsync(Type, Object[], CancellationToken)

Sucht eine Entität mit den angegebenen Primärschlüsselwerten. Wenn eine Entität mit den angegebenen Primärschlüssel Werten vom Kontext nachverfolgt wird, wird Sie sofort zurückgegeben, ohne dass eine Anforderung an die Datenbank gesendet wird. Andernfalls wird eine Abfrage für eine Entität mit den angegebenen Primärschlüssel Werten an die Datenbank gesendet, und diese Entität wird, sofern gefunden, an den Kontext angefügt und zurückgegeben. Wenn keine Entität gefunden wird, wird NULL zurückgegeben.

FindAsync<TEntity>(Object[])

Sucht eine Entität mit den angegebenen Primärschlüsselwerten. Wenn eine Entität mit den angegebenen Primärschlüssel Werten vom Kontext nachverfolgt wird, wird Sie sofort zurückgegeben, ohne dass eine Anforderung an die Datenbank gesendet wird. Andernfalls wird eine Abfrage für eine Entität mit den angegebenen Primärschlüssel Werten an die Datenbank gesendet, und diese Entität wird, sofern gefunden, an den Kontext angefügt und zurückgegeben. Wenn keine Entität gefunden wird, wird NULL zurückgegeben.

FindAsync<TEntity>(Object[], CancellationToken)

Sucht eine Entität mit den angegebenen Primärschlüsselwerten. Wenn eine Entität mit den angegebenen Primärschlüssel Werten vom Kontext nachverfolgt wird, wird Sie sofort zurückgegeben, ohne dass eine Anforderung an die Datenbank gesendet wird. Andernfalls wird eine Abfrage für eine Entität mit den angegebenen Primärschlüssel Werten an die Datenbank gesendet, und diese Entität wird, sofern gefunden, an den Kontext angefügt und zurückgegeben. Wenn keine Entität gefunden wird, wird NULL zurückgegeben.

FromExpression<TResult>(Expression<Func<IQueryable<TResult>>>)

Erstellt für den angegebenen Abfrage Ausdruck eine Abfrage.

OnConfiguring(DbContextOptionsBuilder)

Überschreiben Sie diese Methode, um die Datenbank (und andere Optionen) zu konfigurieren, die für diesen Kontext verwendet werden soll. Diese Methode wird für jede Instanz des Kontexts aufgerufen, der erstellt wird. Die Basis Implementierung tut nichts.

In Situationen, in denen eine Instanz von DbContextOptions möglicherweise an den-Konstruktor übergeben wurde, können Sie mithilfe von IsConfigured bestimmen, ob die Optionen bereits festgelegt wurden, und einige oder alle der Logik in über OnConfiguring(DbContextOptionsBuilder) springen.

OnModelCreating(ModelBuilder)

Überschreiben Sie diese Methode, um das von der Konvention erkannte Modell anhand der in den DbSet<TEntity> Eigenschaften des abgeleiteten Kontexts verfügbar gemachten Entitäts Typen weiter zu konfigurieren. Das resultierende Modell kann zwischengespeichert und für nachfolgende Instanzen des abgeleiteten Kontexts wieder verwendet werden.

Query<TQuery>()
Veraltet.

Erstellt eine DbSet<TEntity> , die verwendet werden kann, um Instanzen von abzufragen TQuery .

Remove(Object)

Beginnt mit der Nachverfolgung der angegebenen Entität im Deleted Zustand, sodass Sie aus der Datenbank entfernt wird, wenn SaveChanges() aufgerufen wird.

Remove<TEntity>(TEntity)

Beginnt mit der Nachverfolgung der angegebenen Entität im Deleted Zustand, sodass Sie aus der Datenbank entfernt wird, wenn SaveChanges() aufgerufen wird.

RemoveRange(IEnumerable<Object>)

Beginnt mit der Nachverfolgung der angegebenen Entität im Deleted Zustand, sodass Sie aus der Datenbank entfernt wird, wenn SaveChanges() aufgerufen wird.

RemoveRange(Object[])

Beginnt mit der Nachverfolgung der angegebenen Entität im Deleted Zustand, sodass Sie aus der Datenbank entfernt wird, wenn SaveChanges() aufgerufen wird.

SaveChanges()

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

Diese Methode ruft automatisch DetectChanges() auf, um Änderungen an Entitäts Instanzen zu ermitteln, bevor Sie in der zugrunde liegenden Datenbank gespeichert werden. Dies kann über deaktiviert werden AutoDetectChangesEnabled .

SaveChanges(Boolean)

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

Diese Methode ruft automatisch DetectChanges() auf, um Änderungen an Entitäts Instanzen zu ermitteln, bevor Sie in der zugrunde liegenden Datenbank gespeichert werden. Dies kann über deaktiviert werden AutoDetectChangesEnabled .

SaveChangesAsync(Boolean, CancellationToken)

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

Diese Methode ruft automatisch DetectChanges() auf, um Änderungen an Entitäts Instanzen zu ermitteln, bevor Sie in der zugrunde liegenden Datenbank gespeichert werden. Dies kann über deaktiviert werden AutoDetectChangesEnabled .

Mehrere aktive Vorgänge in derselben Kontext Instanz werden nicht unterstützt. Verwenden Sie "warten", um sicherzustellen, dass alle asynchronen Vorgänge abgeschlossen sind, bevor Sie eine andere Methode in diesem Kontext aufrufen.

SaveChangesAsync(CancellationToken)

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

Diese Methode ruft automatisch DetectChanges() auf, um Änderungen an Entitäts Instanzen zu ermitteln, bevor Sie in der zugrunde liegenden Datenbank gespeichert werden. Dies kann über deaktiviert werden AutoDetectChangesEnabled .

Mehrere aktive Vorgänge in derselben Kontext Instanz werden nicht unterstützt. Verwenden Sie "warten", um sicherzustellen, dass alle asynchronen Vorgänge abgeschlossen sind, bevor Sie eine andere Methode in diesem Kontext aufrufen.

Set<TEntity>()

Erstellt eine DbSet<TEntity> , die verwendet werden kann, um Instanzen von abzufragen und zu speichern TEntity .

Set<TEntity>(String)

Erstellt eine DbSet<TEntity> , die verwendet werden kann, um Instanzen von abzufragen und zu speichern TEntity .

Update(Object)

Startet die Nachverfolgung der angegebenen Entität und der Einträge, die von der angegebenen Entität erreichbar Modified sind, standardmäßig unter Verwendung des-Zustands. siehe unten für Fälle, in denen ein anderer Zustand verwendet wird

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Modified . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass neue Entitäten eingefügt werden, während vorhandene Entitäten aktualisiert werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Modified .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

Update<TEntity>(TEntity)

Startet die Nachverfolgung der angegebenen Entität und der Einträge, die von der angegebenen Entität erreichbar Modified sind, standardmäßig unter Verwendung des-Zustands. siehe unten für Fälle, in denen ein anderer Zustand verwendet wird

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Modified . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass neue Entitäten eingefügt werden, während vorhandene Entitäten aktualisiert werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Modified .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

UpdateRange(IEnumerable<Object>)

Beginnt, die angegebenen Entitäten und Einträge, die von den angegebenen Entitäten erreichbar Modified sind, standardmäßig mit dem-Status zu verfolgen, aber siehe unten für Fälle, in denen ein anderer Status verwendet wird.

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Modified . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass neue Entitäten eingefügt werden, während vorhandene Entitäten aktualisiert werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Modified .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

UpdateRange(Object[])

Beginnt, die angegebenen Entitäten und Einträge, die von den angegebenen Entitäten erreichbar Modified sind, standardmäßig mit dem-Status zu verfolgen, aber siehe unten für Fälle, in denen ein anderer Status verwendet wird.

Im Allgemeinen wird keine Daten Bank Interaktion ausgeführt, bis SaveChanges() aufgerufen wird.

Eine rekursive Suche der Navigations Eigenschaften wird ausgeführt, um erreichbare Entitäten zu finden, die nicht bereits vom Kontext verfolgt werden. Alle gefundenen Entitäten werden vom Kontext nachverfolgt.

Für Entitäts Typen mit generierten Schlüsseln, wenn für eine Entität der Primärschlüssel Wert festgelegt ist, wird Sie im Zustand nachverfolgt Modified . Wenn der Primärschlüssel Wert nicht festgelegt ist, wird er im Zustand nachverfolgt Added . Dadurch wird sichergestellt, dass neue Entitäten eingefügt werden, während vorhandene Entitäten aktualisiert werden. Für eine Entität wird der Wert des Primärschlüssels festgelegt, wenn die Eigenschaft Primärschlüssel für den Eigenschaftentyp auf einen anderen Wert als CLR-Standard festgelegt ist.

Bei Entitäts Typen ohne generierte Schlüssel lautet der Status festgelegt immer Modified .

Verwenden State Sie, um den Status einer einzelnen Entität festzulegen.

Ereignisse

SaveChangesFailed

Ein Ereignis, das ausgelöst wird, wenn ein Rückruf von SaveChanges oder SaveChangesAsync mit einer Ausnahme fehlschlägt.

SavedChanges

Ein Ereignis, das am Ende eines Aufrufes von oder ausgelöst wird. SaveChangesSaveChangesAsync

SavingChanges

Ein Ereignis, das am Anfang eines Aufrufes von oder ausgelöst wird. SaveChangesSaveChangesAsync

Explizite Schnittstellenimplementierungen

IDbContextDependencies.ChangeDetector

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextDependencies.EntityFinderFactory

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextDependencies.EntityFinderSource

Diese API unterstützt die Entity Framework Core-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen. Diese API kann sich ändern oder in zukünftigen Releases entfernt werden.

IDbContextDependencies.EntityGraphAttacher

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextDependencies.InfrastructureLogger

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextDependencies.QueryProvider

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextDependencies.QuerySource

Diese API unterstützt die Entity Framework Core-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen. Diese API kann sich ändern oder in zukünftigen Releases entfernt werden.

IDbContextDependencies.SetSource

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextDependencies.StateManager

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextDependencies.UpdateLogger

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextPoolable.ClearLease()

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextPoolable.ResetState()
IDbContextPoolable.Resurrect(DbContextPoolConfigurationSnapshot)

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextPoolable.SetLease(DbContextLease)

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextPoolable.SetPool(IDbContextPool)

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbContextPoolable.SnapshotConfiguration()

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbQueryCache.GetOrAddQuery(IDbQuerySource, Type)

Diese API unterstützt die Entity Framework Core-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen. Diese API kann sich ändern oder in zukünftigen Releases entfernt werden.

IDbSetCache.GetOrAddSet(IDbSetSource, String, Type)

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IDbSetCache.GetOrAddSet(IDbSetSource, Type)

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IInfrastructure<IServiceProvider>.Instance

Ruft den Bereich ab IServiceProvider , der zum Auflösen von Diensten verwendet wird.

Diese Eigenschaft ist für die Verwendung durch Erweiterungs Methoden vorgesehen, die Dienste nutzen müssen, die nicht direkt auf der öffentlichen API-Oberfläche verfügbar gemacht werden.

IResettableService.ResetState()

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

IResettableService.ResetStateAsync(CancellationToken)

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht denselben Kompatibilitäts Standards wie öffentliche APIs unterliegt. Sie kann in einem Release ohne vorherige Ankündigung geändert oder entfernt werden. Sie sollten Sie nur mit äußerster Vorsicht direkt in Ihrem Code verwenden. Wenn Sie wissen, dass dies beim Aktualisieren auf eine neue Entity Framework Core Version zu Anwendungsfehlern führen kann.

Erweiterungsmethoden

GetInfrastructure<T>(IInfrastructure<T>)

Ruft den Wert einer Eigenschaft ab, die mit ausgeblendet wird IInfrastructure<T> .

Diese Methode wird in der Regel von Datenbankanbietern (und anderen Erweiterungen) verwendet. Sie wird in der Regel nicht im Anwendungscode verwendet.

IInfrastructure<T> wird verwendet, um Eigenschaften auszublenden, die nicht für die Verwendung im Anwendungscode vorgesehen sind, aber in von Datenbankanbietern geschriebenen Erweiterungs Methoden usw. verwendet werden können.

CreateProxy(DbContext, Type, Object[])

Erstellt eine Proxy Instanz für einen Entitätstyp, wenn die Proxy Erstellung aktiviert wurde.

CreateProxy<TEntity>(DbContext, Action<TEntity>, Object[])

Erstellt eine Proxy Instanz für einen Entitätstyp, wenn die Proxy Erstellung aktiviert wurde.

CreateProxy<TEntity>(DbContext, Object[])

Erstellt eine Proxy Instanz für einen Entitätstyp, wenn die Proxy Erstellung aktiviert wurde.

Gilt für: