DbContext クラス

定義

DbContext インスタンスは、Unit Of Work パターンと Repository パターンの組み合わせを表します。このパターンを使用して、データベースからクエリを実行し、変更をグループ化して、ユニットとしてストアに書き戻すことができます。 DbContext は概念的には 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
継承
DbContext
派生
属性
実装

注釈

DbContext は通常、モデルのルート エンティティのプロパティを DbSet<TEntity> 含む派生型で使用されます。 これらのセットは、派生クラスのインスタンスの作成時に自動的に初期化されます。 この動作は、 属性を SuppressDbSetInitializationAttribute 派生コンテキスト クラス全体または クラスの個々のプロパティに適用することで変更できます。 コンテキストをサポートする Entity Data Model を指定する方法はいくつかあります。 Code First アプローチを使用する場合、 DbSet<TEntity> 派生コンテキストのプロパティを使用して、規則によってモデルを構築します。 保護された OnModelCreating メソッドをオーバーライドして、このモデルを調整できます。 Model First アプローチに使用されるモデルをより詳細に制御するには、 から DbModelBuilder を明示的に作成DbCompiledModelし、このモデルをいずれかの DbContext コンストラクターに渡します。 Database First または Model First アプローチを使用する場合、エンティティ データ モデルは Entity Designer (または EDMX ファイルの作成を通じて手動で) を使用して作成でき、エンティティ接続文字列またはオブジェクトを使用してこのモデルをEntityConnection指定できます。 データベースへの接続 (データベース名を含む) を指定する方法はいくつかあります。 パラメーターなしの DbContext コンストラクターが派生コンテキストから呼び出された場合、派生コンテキストの名前を使用して、app.config または web.config ファイル内の接続文字列が検索されます。 接続文字列が見つからない場合、名前は クラスに登録されている DefaultConnectionFactory に Database 渡されます。 接続ファクトリは、既定の接続文字列でコンテキスト名をデータベース名として使用します (この既定の接続文字列は、別の DefaultConnectionFactory が登録されていない限り、ローカル コンピューター上の .\SQLEXPRESS を指します)。派生コンテキスト名を使用する代わりに、文字列を受け取る DbContext コンストラクターのいずれかに名前を渡すことで、接続またはデータベース名を明示的に指定することもできます。 名前は、"name=myname" という形式で渡すこともできます。この場合は名前を構成ファイル内で指定する必要があり、検出されない場合は例外がスローされます。 app.config または web.config ファイルに含まれる接続は、通常のデータベース接続文字列 (特殊な Entity Framework 接続文字列ではありません) にすることができます。この場合、DbContext は Code First を使用します。 ただし、構成ファイルで見つかった接続が特殊な Entity Framework 接続文字列である場合、DbContext は Database/Model First を使用し、接続文字列で指定されたモデルが使用されます。 またデータベース名または接続名の代わりに既存の、または明示的に作成した DbConnection を使用することもできます。 DbModelBuilderVersionAttribute DbContext から派生したクラスに を適用して、モデルの作成時にコンテキストで使用される規則のバージョンを設定できます。 属性を適用しない場合は、最新バージョンの規約が使用されます。

コンストラクター

DbContext()

規約を使用して接続先のデータベースの名前を作成する新しいコンテキスト インスタンスを構築します。 規則別の名前は、派生コンテキスト クラスの完全名 (名前空間 + クラス名) です。 これを使用して接続を作成する方法については、クラスの解説を参照してください。

DbContext(DbCompiledModel)

規約を使用して接続先のデータベースの名前を作成する新しいコンテキスト インスタンスを構築し、指定されたモデルからそのインスタンスを初期化します。 規則別の名前は、派生コンテキスト クラスの完全名 (名前空間 + クラス名) です。 これを使用して接続を作成する方法については、クラスの解説を参照してください。

DbContext(DbConnection, Boolean)

既存の接続を使用してデータベースに接続する新しいコンテキスト インスタンスを構築します。 が の場合contextOwnsConnectionfalse、コンテキストが破棄されるときに接続は破棄されません。

DbContext(DbConnection, DbCompiledModel, Boolean)

既存の接続を使用してデータベースに接続する新しいコンテキスト インスタンスを構築し、指定されたモデルからそのインスタンスを初期化します。 が の場合contextOwnsConnectionfalse、コンテキストが破棄されるときに接続は破棄されません。

DbContext(ObjectContext, Boolean)

既存の ObjectContext を囲む新しいコンテキスト インスタンスを構築します。

DbContext(ObjectContext, Boolean)

既存の ObjectContext を囲む新しいコンテキスト インスタンスを構築します。

DbContext(String)

指定された文字列を接続先のデータベースの名前または接続文字列として使用する新しいコンテキスト インスタンスを構築します。 これを使用して接続を作成する方法については、クラスの解説を参照してください。

DbContext(String, DbCompiledModel)

指定された文字列を接続先のデータベースの名前または接続文字列として使用する新しいコンテキスト インスタンスを構築し、指定されたモデルからそのインスタンスを初期化します。 これを使用して接続を作成する方法については、クラスの解説を参照してください。

プロパティ

ChangeTracker

エンティティの変更追跡を処理するコンテキストの機能にアクセスできます。

Configuration

コンテキストの構成オプションにアクセスできます。

Database

基になるデータベースの作成/削除/存在チェックを可能にする、このコンテキストの Database インスタンスを作成します。

メソッド

Dispose()

保護された Dispose メソッドを呼び出します。

Dispose(Boolean)

コンテキストを破棄します。 基になる ObjectContext は、このコンテキストによって作成された場合、またはこのコンテキストの作成時に所有権がこのコンテキストに渡された場合にも破棄されます。 データベース (DbConnection オブジェクト) への接続は、このコンテキストによって作成された場合、またはこのコンテキストの作成時に所有権がこのコンテキストに渡された場合にも破棄されます。

Entry(Object)

エンティティに DbEntityEntry 関する情報とエンティティに対してアクションを実行する機能へのアクセスを提供する、指定されたエンティティのオブジェクトを取得します。

Entry<TEntity>(TEntity)

エンティティに DbEntityEntry<TEntity> 関する情報とエンティティに対してアクションを実行する機能へのアクセスを提供する、指定されたエンティティのオブジェクトを取得します。

Equals(Object)

DbContext インスタンスは、Unit Of Work パターンと Repository パターンの組み合わせを表します。このパターンを使用して、データベースからクエリを実行し、変更をグループ化して、ユニットとしてストアに書き戻すことができます。 DbContext は概念的には ObjectContext に似ています。

GetHashCode()

DbContext インスタンスは、Unit Of Work パターンと Repository パターンの組み合わせを表します。このパターンを使用して、データベースからクエリを実行し、変更をグループ化して、ユニットとしてストアに書き戻すことができます。 DbContext は概念的には ObjectContext に似ています。

GetType()

DbContext インスタンスは、Unit Of Work パターンと Repository パターンの組み合わせを表します。このパターンを使用して、データベースからクエリを実行し、変更をグループ化して、ユニットとしてストアに書き戻すことができます。 DbContext は概念的には ObjectContext に似ています。

GetValidationErrors()

追跡対象エンティティを検証し、検証結果を含む の DbEntityValidationResult コレクションを返します。

OnModelCreating(DbModelBuilder)

このメソッドは、派生コンテキストのモデルの初期化が完了したが、まだロックダウンされていないときに呼び出され、コンテキストの初期化に使用されます。 このメソッドの既定の実装では何も行われませんが、モデルがロックダウンされる前にさらに設定できるように派生クラスでオーバーライドできます。

SaveChanges()

このコンテキストで行われたすべての変更を基になるデータベースに保存します。

SaveChangesAsync()

このコンテキストで行われたすべての変更を、基になるデータベースに非同期的に保存します。

SaveChangesAsync(CancellationToken)

このコンテキストで行われたすべての変更を、基になるデータベースに非同期的に保存します。

Set(Type)

コンテキストと基になるストア内の特定の型のエンティティにアクセスするための非ジェネリック DbSet インスタンスを返します。

Set<TEntity>()

DbSet<TEntity>コンテキストと基になるストア内の指定された型のエンティティにアクセスするためのインスタンスを返します。

ShouldValidateEntity(DbEntityEntry)

ユーザーが追加されたエンティティと変更されたエンティティのみを検証する既定の動作をオーバーライドできるようにするための拡張ポイント。

ToString()

DbContext インスタンスは、Unit Of Work パターンと Repository パターンの組み合わせを表します。このパターンを使用して、データベースからクエリを実行し、変更をグループ化して、ユニットとしてストアに書き戻すことができます。 DbContext は概念的には ObjectContext に似ています。

ValidateEntity(DbEntityEntry, IDictionary<Object,Object>)

ユーザーがエンティティの検証をカスタマイズしたり、検証結果にフィルターをかけて除外したりできるようにするための拡張ポイント。 GetValidationErrors() によって呼び出されます。

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

IObjectContextAdapter.ObjectContext

このコンテキストの基になる Entity Framework ObjectContext を返します。

適用対象