DbContext クラス

定義

DbContext インスタンスは、データベースとのセッションを表し、エンティティのインスタンスのクエリと保存に使用できます。 DbContext は、作業単位とリポジトリパターンを組み合わせたものです。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

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
type DbContext = class
    interface IInfrastructure<IServiceProvider>
    interface IDbContextDependencies
    interface IDbSetCache
    interface IDbContextPoolable
    interface IResettableService
    interface IDisposable
    interface IAsyncDisposable
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)
継承
DbContext
実装
IInfrastructure<IServiceProvider> IDisposable Microsoft.EntityFrameworkCore.Internal.IDbContextDependencies Microsoft.EntityFrameworkCore.Internal.IDbContextPoolable Microsoft.EntityFrameworkCore.Internal.IDbSetCache Microsoft.EntityFrameworkCore.Internal.IDbQueryCache IResettableService IAsyncDisposable

注釈

通常は、DbContext から派生したクラスを作成し、 DbSet<TEntity> モデル内の各エンティティのプロパティを格納します。 DbSet<TEntity>パブリック setter を持つプロパティは、派生コンテキストのインスタンスの作成時に自動的に初期化されます。

メソッドをオーバーライドして、 OnConfiguring(DbContextOptionsBuilder) コンテキストに使用するデータベース (およびその他のオプション) を構成します。 または、コンテキストでインラインではなく、外部で構成を実行する場合は、(または) を使用して DbContextOptionsBuilder<TContext> DbContextOptionsBuilder のインスタンスを外部で作成 DbContextOptions<TContext> し、 DbContextOptions の基本コンストラクターに渡すことができ DbContext ます。

モデルは、派生コンテキストのプロパティで見つかったエンティティクラスに対して一連の規則を実行することによって検出され DbSet<TEntity> ます。 規則によって検出されるモデルをさらに構成するには、メソッドをオーバーライドし OnModelCreating(ModelBuilder) ます。

詳細については、 Dbcontext の有効期間、構成、および初期化EF Core を使用したデータのクエリ、追跡の 変更、および EF Core を使用したデータの保存に 関する説明を参照してください。

コンストラクター

DbContext()

DbContext クラスの新しいインスタンスを初期化します。 OnConfiguring(DbContextOptionsBuilder) このコンテキストに使用するデータベース (およびその他のオプション) を構成するために、メソッドが呼び出されます。

DbContext(DbContextOptions)

DbContext指定したオプションを使用して、クラスの新しいインスタンスを初期化します。 OnConfiguring(DbContextOptionsBuilder)オプションをさらに構成できるようにするために、メソッドが呼び出されます。

プロパティ

ChangeTracker

このコンテキストが追跡しているエンティティ インスタンスの情報と操作へのアクセスを提供します。

ContextId

コンテキスト インスタンスとプールリースの一意識別子 (指定されている場合)。

この識別子は、主にログとデバッグの関連付け ID を目的とします。これにより、複数のイベントが同じまたは異なるコンテキスト インスタンスを使用することを簡単に識別できます。

Database

このコンテキストのデータベース関連の情報と操作へのアクセスを提供します。

Model

エンティティの構造、エンティティ間のリレーションシップ、およびデータベースへのマップ方法に関するメタデータ。 データベースを初期化するために必要なすべての情報を含めることはできません。

メソッド

Add(Object)

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

State1 つのエンティティのみの状態を設定するには、を使用します。

Add<TEntity>(TEntity)

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

State1 つのエンティティのみの状態を設定するには、を使用します。

AddAsync(Object, CancellationToken)

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

State1 つのエンティティのみの状態を設定するには、を使用します。

このメソッドは、' SqlServerValueGenerationStrategy ' によって使用される特殊な値ジェネレーターを許可して、データベースに非同期にアクセスするためにのみ非同期になります。 それ以外の場合は、非同期メソッドを使用する必要があります。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

AddAsync<TEntity>(TEntity, CancellationToken)

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

このメソッドは、' SqlServerValueGenerationStrategy ' によって使用される特殊な値ジェネレーターを許可して、データベースに非同期にアクセスするためにのみ非同期になります。 それ以外の場合は、非同期メソッドを使用する必要があります。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

AddRange(IEnumerable<Object>)

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

AddRange(Object[])

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

AddRangeAsync(IEnumerable<Object>, CancellationToken)

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

このメソッドは、' SqlServerValueGenerationStrategy ' によって使用される特殊な値ジェネレーターを許可して、データベースに非同期にアクセスするためにのみ非同期になります。 それ以外の場合は、非同期メソッドを使用する必要があります。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

AddRangeAsync(Object[])

Addedが呼び出されたときにデータベースに挿入されるように、指定されたエンティティと、まだ追跡されていないその他の到達可能なエンティティの追跡を開始し SaveChanges() ます。

このメソッドは、' SqlServerValueGenerationStrategy ' によって使用される特殊な値ジェネレーターを許可して、データベースに非同期にアクセスするためにのみ非同期になります。 それ以外の場合は、非同期メソッドを使用する必要があります。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

Attach(Object)

既定では、指定されたエンティティと、指定したエンティティから到達できるエントリの追跡を開始し Unchanged ます。ただし、別の状態を使用する場合は、以下を参照してください。

一般に、が呼び出されるまで、データベースとの対話は実行されません SaveChanges()

ナビゲーションプロパティを再帰的に検索すると、コンテキストによってまだ追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティの主キー値が設定されている場合、生成されたキーを持つエンティティ型については、状態で追跡され Unchanged ます。 主キーの値が設定されていない場合は、状態で追跡され Added ます。 これにより、新しいエンティティのみが挿入されます。 主キー プロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値を設定したと見なされます。

生成されたキーのないエンティティ型の場合、状態セットは常に です Unchanged

State 使用して、1 つのエンティティの状態のみを設定します。

Attach<TEntity>(TEntity)

既定では 状態を使用して、特定のエンティティと特定のエンティティから到達可能なエントリの追跡を開始しますが、別の状態が使用される場合は以下 Unchanged を参照してください。

一般に、 が呼び出されるまで、データベースの SaveChanges() 操作は実行されません。

ナビゲーション プロパティの再帰検索が実行され、コンテキストによって追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティに主キー値が設定されている場合、生成されたキーを持つエンティティ型の場合は、状態で追跡 Unchanged されます。 主キーの値が設定されていない場合は、状態で追跡 Added されます。 これにより、新しいエンティティだけが挿入されます。 主キー プロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値を設定したと見なされます。

生成されたキーのないエンティティ型の場合、状態セットは常に です Unchanged

State 使用して、1 つのエンティティの状態のみを設定します。

AttachRange(IEnumerable<Object>)

既定では 状態を使用して、特定のエンティティから到達可能な特定のエンティティとエントリの追跡を開始しますが、別の状態が使用される場合は以下 Unchanged を参照してください。

一般に、 が呼び出されるまで、データベースの SaveChanges() 操作は実行されません。

ナビゲーション プロパティの再帰検索が実行され、コンテキストによって追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティに主キー値が設定されている場合、生成されたキーを持つエンティティ型の場合は、状態で追跡 Unchanged されます。 主キーの値が設定されていない場合は、状態で追跡 Added されます。 これにより、新しいエンティティだけが挿入されます。 主キー プロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値を設定したと見なされます。

生成されたキーのないエンティティ型の場合、状態セットは常に です Unchanged

State 使用して、1 つのエンティティの状態のみを設定します。

AttachRange(Object[])

既定では 状態を使用して、特定のエンティティから到達可能な特定のエンティティとエントリの追跡を開始しますが、別の状態が使用される場合は以下 Unchanged を参照してください。

一般に、 が呼び出されるまで、データベースの SaveChanges() 操作は実行されません。

ナビゲーション プロパティの再帰検索が実行され、コンテキストによって追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティに主キー値が設定されている場合、生成されたキーを持つエンティティ型の場合は、状態で追跡 Unchanged されます。 主キーの値が設定されていない場合は、状態で追跡 Added されます。 これにより、新しいエンティティだけが挿入されます。 主キー プロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値を設定したと見なされます。

生成されたキーのないエンティティ型の場合、状態セットは常に です Unchanged

State 使用して、1 つのエンティティの状態のみを設定します。

ConfigureConventions(ModelConfigurationBuilder)

このメソッドをオーバーライドして、既定値を設定し、実行する前に規則を構成します。 このメソッドは、 の前に呼び出されます OnModelCreating(ModelBuilder)

Dispose()

このコンテキストに割り当てられたリソースを解放します。

DisposeAsync()

このコンテキストに割り当てられたリソースを解放します。

Entity Framework Core、同じ DbContext インスタンスで複数の並列操作を実行する操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 そのため、常に非同期呼び出しをすぐに待つか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細 については、「DbContext スレッド処理の問題を回避する 」を参照してください。

Entry(Object)

指定した EntityEntry エンティティの を取得します。 エントリは、エンティティの変更追跡情報と操作へのアクセスを提供します。

このメソッドは、追跡されないエンティティで呼び出される場合があります。 その後、返されたエントリの プロパティを設定して、コンテキストで指定された状態のエンティティの追跡 State を開始することができます。

Entry<TEntity>(TEntity)

指定した EntityEntry<TEntity> エンティティの を取得します。 エントリは、エンティティの変更追跡情報と操作へのアクセスを提供します。

Find(Type, Object[])

指定された主キー値を持つエンティティを検索します。 指定された主キー値を持つエンティティがコンテキストによって追跡されている場合は、データベースに要求を行わずにすぐに返されます。 それ以外の場合は、指定された主キー値を持つエンティティのデータベースに対してクエリが実行され、このエンティティが見つかった場合は コンテキストにアタッチされ、返されます。 エンティティが見つからない場合は、null が返されます。

Find<TEntity>(Object[])

指定された主キー値を持つエンティティを検索します。 指定された主キー値を持つエンティティがコンテキストによって追跡されている場合は、データベースに要求を行わずにすぐに返されます。 それ以外の場合は、指定された主キー値を持つエンティティのデータベースに対してクエリが実行され、このエンティティが見つかった場合は コンテキストにアタッチされ、返されます。 エンティティが見つからない場合は、null が返されます。

FindAsync(Type, Object[])

指定された主キー値を持つエンティティを検索します。 指定された主キー値を持つエンティティがコンテキストによって追跡されている場合は、データベースに要求を行わずにすぐに返されます。 それ以外の場合は、指定された主キー値を持つエンティティのデータベースに対してクエリが実行され、このエンティティが見つかった場合は コンテキストにアタッチされ、返されます。 エンティティが見つからない場合は、null が返されます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

FindAsync(Type, Object[], CancellationToken)

指定された主キー値を持つエンティティを検索します。 指定された主キー値を持つエンティティがコンテキストによって追跡されている場合は、データベースへの要求を作成せずに直ちに返されます。 それ以外の場合は、指定された主キー値を持つエンティティに対するクエリがデータベースに対して行われ、このエンティティが存在する場合はコンテキストにアタッチされて返されます。 エンティティが見つからない場合は、null が返されます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

FindAsync<TEntity>(Object[])

指定された主キー値を持つエンティティを検索します。 指定された主キー値を持つエンティティがコンテキストによって追跡されている場合は、データベースへの要求を作成せずに直ちに返されます。 それ以外の場合は、指定された主キー値を持つエンティティに対するクエリがデータベースに対して行われ、このエンティティが存在する場合はコンテキストにアタッチされて返されます。 エンティティが見つからない場合は、null が返されます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

FindAsync<TEntity>(Object[], CancellationToken)

指定された主キー値を持つエンティティを検索します。 指定された主キー値を持つエンティティがコンテキストによって追跡されている場合は、データベースへの要求を作成せずに直ちに返されます。 それ以外の場合は、指定された主キー値を持つエンティティに対するクエリがデータベースに対して行われ、このエンティティが存在する場合はコンテキストにアタッチされて返されます。 エンティティが見つからない場合は、null が返されます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

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

指定されたクエリ式に対してクエリ可能なを作成します。

OnConfiguring(DbContextOptionsBuilder)

このコンテキストに使用するデータベース (およびその他のオプション) を構成するには、このメソッドをオーバーライドします。 このメソッドは、作成されるコンテキストの各インスタンスに対して呼び出されます。 基本実装では、何も実行されません。

のインスタンスがコンストラクターに渡されたかどうかを判断する場合は、を使用して、 DbContextOptions IsConfigured オプションが既に設定されているかどうかを確認し、のロジックの一部またはすべてをスキップでき OnConfiguring(DbContextOptionsBuilder) ます。

OnModelCreating(ModelBuilder)

このメソッドをオーバーライドすると、派生コンテキストのプロパティで公開されているエンティティ型から、規則によって検出されたモデルをさらに構成でき DbSet<TEntity> ます。 結果として得られるモデルはキャッシュされ、派生コンテキストの後続のインスタンスに再利用される可能性があります。

Query<TQuery>()
互換性のために残されています。

DbSet<TEntity>のインスタンスのクエリに使用できるを作成し TQuery ます。

Remove(Object)

が呼び出されたときにデータベースから削除されるように、指定されたエンティティの状態の追跡を開始 Deleted SaveChanges() します。

Remove<TEntity>(TEntity)

が呼び出されたときにデータベースから削除されるように、指定されたエンティティの状態の追跡を開始 Deleted SaveChanges() します。

RemoveRange(IEnumerable<Object>)

が呼び出されたときにデータベースから削除されるように、指定されたエンティティの状態の追跡を開始 Deleted SaveChanges() します。

RemoveRange(Object[])

が呼び出されたときにデータベースから削除されるように、指定されたエンティティの状態の追跡を開始 Deleted SaveChanges() します。

SaveChanges()

このコンテキストに加えられたすべての変更をデータベースに保存します。

このメソッドは DetectChanges() 、基になるデータベースに保存する前に、エンティティインスタンスへの変更を検出するためにを自動的に呼び出します。 これは、を使用して無効にすることができ AutoDetectChangesEnabled ます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

SaveChanges(Boolean)

このコンテキストに加えられたすべての変更をデータベースに保存します。

このメソッドは DetectChanges() 、基になるデータベースに保存する前に、エンティティインスタンスへの変更を検出するためにを自動的に呼び出します。 これは、を使用して無効にすることができ AutoDetectChangesEnabled ます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

SaveChangesAsync(Boolean, CancellationToken)

このコンテキストに加えられたすべての変更をデータベースに保存します。

このメソッドは DetectChanges() 、基になるデータベースに保存する前に、エンティティインスタンスへの変更を検出するためにを自動的に呼び出します。 これは、を使用して無効にすることができ AutoDetectChangesEnabled ます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

SaveChangesAsync(CancellationToken)

このコンテキストに加えられたすべての変更をデータベースに保存します。

このメソッドは DetectChanges() 、基になるデータベースに保存する前に、エンティティインスタンスへの変更を検出するためにを自動的に呼び出します。 これは、を使用して無効にすることができ AutoDetectChangesEnabled ます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

Set<TEntity>()

DbSet<TEntity>のインスタンスのクエリおよび保存に使用できるを作成し TEntity ます。

Entity Framework Core では、同じ DbContext インスタンスで実行される複数の並列操作はサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、は常に非同期呼び出しを直ちに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細については、「 DbContext のスレッド処理の問題の回避 」を参照してください。

Set<TEntity>(String)

DbSet<TEntity>のインスタンスをクエリおよび保存するために使用できる、共有型のエンティティ型のを作成し TEntity ます。

共有型のエンティティ型は、通常、多対多リレーションシップの結合エンティティに対して使用されます。

Update(Object)

既定では、指定されたエンティティと、指定したエンティティから到達できるエントリの追跡を開始し Modified ます。ただし、別の状態を使用する場合は、以下を参照してください。

一般に、が呼び出されるまで、データベースとの対話は実行されません SaveChanges()

ナビゲーションプロパティを再帰的に検索すると、コンテキストによってまだ追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティの主キー値が設定されている場合、生成されたキーを持つエンティティ型については、状態で追跡され Modified ます。 主キーの値が設定されていない場合は、状態で追跡され Added ます。 これにより、新しいエンティティが挿入され、既存のエンティティが更新されます。 主キープロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値が設定されていると見なされます。

生成されたキーを持たないエンティティ型の場合、状態セットは常に Modified です。

State1 つのエンティティのみの状態を設定するには、を使用します。

Update<TEntity>(TEntity)

既定では、指定されたエンティティと、指定したエンティティから到達できるエントリの追跡を開始し Modified ます。ただし、別の状態を使用する場合は、以下を参照してください。

一般に、が呼び出されるまで、データベースとの対話は実行されません SaveChanges()

ナビゲーションプロパティを再帰的に検索すると、コンテキストによってまだ追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティの主キー値が設定されている場合、生成されたキーを持つエンティティ型については、状態で追跡され Modified ます。 主キーの値が設定されていない場合は、状態で追跡され Added ます。 これにより、新しいエンティティが挿入され、既存のエンティティが更新されます。 主キープロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値が設定されていると見なされます。

生成されたキーを持たないエンティティ型の場合、状態セットは常に Modified です。

State1 つのエンティティのみの状態を設定するには、を使用します。

UpdateRange(IEnumerable<Object>)

既定で状態を使用して、指定されたエンティティから到達できるエントリの追跡を開始し Modified ます。ただし、別の状態が使用される場合は、以下を参照してください。

一般に、が呼び出されるまで、データベースとの対話は実行されません SaveChanges()

ナビゲーションプロパティを再帰的に検索すると、コンテキストによってまだ追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティの主キー値が設定されている場合、生成されたキーを持つエンティティ型については、状態で追跡され Modified ます。 主キーの値が設定されていない場合は、状態で追跡され Added ます。 これにより、新しいエンティティが挿入され、既存のエンティティが更新されます。 主キープロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値が設定されていると見なされます。

生成されたキーを持たないエンティティ型の場合、状態セットは常に Modified です。

State1 つのエンティティのみの状態を設定するには、を使用します。

UpdateRange(Object[])

既定で状態を使用して、指定されたエンティティから到達できるエントリの追跡を開始し Modified ます。ただし、別の状態が使用される場合は、以下を参照してください。

一般に、が呼び出されるまで、データベースとの対話は実行されません SaveChanges()

ナビゲーションプロパティを再帰的に検索すると、コンテキストによってまだ追跡されていない到達可能なエンティティが検索されます。 見つかったすべてのエンティティは、コンテキストによって追跡されます。

エンティティの主キー値が設定されている場合、生成されたキーを持つエンティティ型については、状態で追跡され Modified ます。 主キーの値が設定されていない場合は、状態で追跡され Added ます。 これにより、新しいエンティティが挿入され、既存のエンティティが更新されます。 主キープロパティがプロパティ型の CLR の既定値以外に設定されている場合、エンティティは主キー値が設定されていると見なされます。

生成されたキーを持たないエンティティ型の場合、状態セットは常に Modified です。

State1 つのエンティティのみの状態を設定するには、を使用します。

イベント

SaveChangesFailed

またはの呼び出しが SaveChanges 例外で失敗した場合に発生するイベント SaveChangesAsync

SavedChanges

またはへの呼び出しの終了時に発生するイベント SaveChangesSaveChangesAsync

SavingChanges

またはへの呼び出しの開始時に発生するイベント SaveChangesSaveChangesAsync

明示的なインターフェイスの実装

IDbContextDependencies.ChangeDetector

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextDependencies.EntityFinderFactory

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextDependencies.EntityFinderSource

この API は Entity Framework Core インフラストラクチャをサポートします。独自に作成したコードから直接使用するためのものではありません。 この API は、今後のリリースで変更または削除される可能性があります。

IDbContextDependencies.EntityGraphAttacher

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextDependencies.InfrastructureLogger

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextDependencies.QueryProvider

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextDependencies.QuerySource

この API は Entity Framework Core インフラストラクチャをサポートします。独自に作成したコードから直接使用するためのものではありません。 この API は、今後のリリースで変更または削除される可能性があります。

IDbContextDependencies.SetSource

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextDependencies.StateManager

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextDependencies.UpdateLogger

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextPoolable.ClearLease()

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextPoolable.ResetState()
IDbContextPoolable.Resurrect(DbContextPoolConfigurationSnapshot)

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextPoolable.SetLease(DbContextLease)

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextPoolable.SetLeaseAsync(DbContextLease, CancellationToken)

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextPoolable.SetPool(IDbContextPool)

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbContextPoolable.SnapshotConfiguration()

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbQueryCache.GetOrAddQuery(IDbQuerySource, Type)

この API は Entity Framework Core インフラストラクチャをサポートします。独自に作成したコードから直接使用するためのものではありません。 この API は、今後のリリースで変更または削除される可能性があります。

IDbSetCache.GetOrAddSet(IDbSetSource, String, Type)

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IDbSetCache.GetOrAddSet(IDbSetSource, Type)

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IInfrastructure<IServiceProvider>.Instance

IServiceProviderサービスを解決するために使用されるスコープを取得します。

このプロパティは、パブリック API サーフェイスに直接公開されていないサービスを使用する必要がある拡張メソッドによって使用されることを目的としています。

IResettableService.ResetState()

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

IResettableService.ResetStateAsync(CancellationToken)

これは、Entity Framework Core インフラストラクチャをサポートする内部 API であり、パブリック Api と同じ互換性標準の対象ではありません。 リリース時に予告なしに変更または削除される可能性があります。 このコードは、十分な注意を払ってコード内で直接使用する必要があります。これにより、新しい Entity Framework Core リリースに更新するときにアプリケーションエラーが発生する可能性があることがわかります。

拡張メソッド

GetInfrastructure<T>(IInfrastructure<T>)

を使用して非表示になっているプロパティから値を取得し IInfrastructure<T> ます。

このメソッドは、通常、データベースプロバイダー (およびその他の拡張機能) で使用されます。 通常、アプリケーションコードでは使用されません。

IInfrastructure<T> は、アプリケーションコードで使用するためのものではなく、データベースプロバイダーによって記述された拡張メソッドで使用できるプロパティを非表示にするために使用されます。

CreateProxy(DbContext, Type, Object[])

プロキシの作成が有効になっている場合は、エンティティ型のプロキシ インスタンスを作成します。

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

プロキシの作成が有効になっている場合は、エンティティ型のプロキシ インスタンスを作成します。

CreateProxy<TEntity>(DbContext, Object[])

プロキシの作成が有効になっている場合は、エンティティ型のプロキシ インスタンスを作成します。

適用対象