Database クラス

定義

このクラスのインスタンスは オブジェクトから DbContext 取得され、DbContext または接続をバックアップする実際のデータベースを管理するために使用できます。 管理には、データベースの作成、削除、存在の確認が含まれます。 データベースの削除と存在の確認は、このクラスの静的メソッドを使用して、接続 (つまり、完全なコンテキストなし) のみを使用して実行できることに注意してください。

public class Database
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification="The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
type Database = class
Public Class Database
継承
Database
属性

プロパティ

CommandTimeout

すべてのコンテキスト操作のタイムアウト値を秒単位で取得または設定します。 既定値は null です。null は、基になるプロバイダーの既定値が使用されることを示します。

Connection

このコンテキストで使用されている接続を返します。 これにより、接続がまだ存在しない場合、接続が作成される可能性があります。

CurrentTransaction

基になるストア接続が参加しているトランザクションを取得します。 null も指定できます。

DefaultConnectionFactory
古い.

データベース名または接続文字列から を DbConnection 作成するときに使用する接続ファクトリ。

Log

によって生成された DbContext SQL を特定のデリゲートにログに記録するには、このプロパティを設定します。 たとえば、コンソールにログを記録するには、このプロパティを に Write(String)設定します。

メソッド

BeginTransaction()

基になるストア接続でトランザクションを開始します

BeginTransaction(IsolationLevel)

指定した分離レベルを使用して、基になるストア接続でトランザクションを開始します

CompatibleWithModel(Boolean)

データベースが現在の Code First モデルと互換性があるかどうかを確認します。

Create()

バッキング コンテキストで定義されたモデルに対し、データベース サーバー上に新しいデータベースを作成します。 データベースの初期化方法が実行される前にこのメソッドを呼び出すと、初期化方法の実行が無効になります。

CreateIfNotExists()

同じ名前のデータベースがサーバー上に存在しない場合に限り、バッキング コンテキストで定義されたモデルに対し、データベース サーバー上に新しいデータベースを作成します。

Delete()

データベースが存在する場合は、データベース サーバー上のデータベースを削除し、それ以外の場合は何も行われません。 初期化子の外部からこのメソッドを呼び出すと、データベースが初期化されていないとマークされます。 つまり、データベースが削除された後にデータベースを再度使用しようとすると、初期化子セットが再度実行され、通常はデータベースの作成が自動的に再試行されます。

Delete(DbConnection)

データベースが存在する場合は、データベース サーバー上のデータベースを削除し、それ以外の場合は何も行われません。

Delete(String)

データベースが存在する場合は、データベース サーバー上のデータベースを削除し、それ以外の場合は何も行われません。 データベースへの接続は、 クラスのドキュメントで説明されているのと同じ方法で、指定されたデータベース名または接続文字列を DbContext 使用して作成されます。

Equals(Object)

このクラスのインスタンスは オブジェクトから DbContext 取得され、DbContext または接続をバックアップする実際のデータベースを管理するために使用できます。 管理には、データベースの作成、削除、存在の確認が含まれます。 データベースの削除と存在の確認は、このクラスの静的メソッドを使用して、接続 (つまり、完全なコンテキストなし) のみを使用して実行できることに注意してください。

ExecuteSqlCommand(String, Object[])

データベースに対して指定した DDL/DML コマンドを実行します。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 コンテキスト。Database.ExecuteSqlCommand("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @p0", userSuppliedAuthor);または、DbParameter を構築して SqlQuery に指定することもできます。 こうすることで、SQL クエリ文字列に名前付きパラメーターを使用できます。 コンテキスト。Database.ExecuteSqlCommand("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

データベースに対して指定した DDL/DML コマンドを実行します。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 コンテキスト。Database.ExecuteSqlCommand("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @p0", userSuppliedAuthor);または、DbParameter を構築して SqlQuery に指定することもできます。 こうすることで、SQL クエリ文字列に名前付きパラメーターを使用できます。 コンテキスト。Database.ExecuteSqlCommand("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

指定された DDL/DML コマンドをデータベースに対して非同期的に実行します。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @p0", userSuppliedAuthor);または、DbParameter を構築して SqlQuery に指定することもできます。 こうすることで、SQL クエリ文字列に名前付きパラメーターを使用できます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

指定された DDL/DML コマンドをデータベースに対して非同期的に実行します。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @p0", userSuppliedAuthor);または、DbParameter を構築して SqlQuery に指定することもできます。 こうすることで、SQL クエリ文字列に名前付きパラメーターを使用できます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[])

指定された DDL/DML コマンドをデータベースに対して非同期的に実行します。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @p0", userSuppliedAuthor);または、DbParameter を構築して SqlQuery に指定することもできます。 こうすることで、SQL クエリ文字列に名前付きパラメーターを使用できます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

指定された DDL/DML コマンドをデータベースに対して非同期的に実行します。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するために、ユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーター プレース ホルダーを含め、追加の引数としてパラメーター値を指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @p0", userSuppliedAuthor);または、DbParameter を構築して SqlQuery に指定することもできます。 こうすることで、SQL クエリ文字列に名前付きパラメーターを使用できます。 コンテキスト。Database.ExecuteSqlCommandAsync("UPDATE dbo.投稿 SET 評価 = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Exists()

サーバー上にデータベースが存在するかどうかを確認します。

Exists(DbConnection)

サーバー上にデータベースが存在するかどうかを確認します。

Exists(String)

サーバー上にデータベースが存在するかどうかを確認します。 データベースへの接続は、 クラスのドキュメントで説明されているのと同じ方法で、指定されたデータベース名または接続文字列を DbContext 使用して作成されます。

GetHashCode()

このクラスのインスタンスは オブジェクトから DbContext 取得され、DbContext または接続をバックアップする実際のデータベースを管理するために使用できます。 管理には、データベースの作成、削除、存在の確認が含まれます。 データベースの削除と存在の確認は、このクラスの静的メソッドを使用して、接続 (つまり、完全なコンテキストなし) のみを使用して実行できることに注意してください。

GetType()

現在のインスタンスの Type を取得します。

Initialize(Boolean)

このコンテキストで登録されている IDatabaseInitializer<TContext> を実行します。 "force" が true に設定されている場合、初期化子は以前に実行されたかどうかに関係なく実行されます。 これは、アプリケーションの実行中にデータベースが削除され、初期化が必要になった場合に役立ちます。 "force" が false に設定されている場合、初期化子は、このアプリ ドメイン内のこのコンテキスト、モデル、および接続に対してまだ実行されていない場合にのみ実行されます。 通常、このメソッドは、操作がトランザクションの一部である場合など、遅延的に問題が発生する操作を開始する前に、データベースが作成およびシード処理されていることを確認する必要がある場合に使用されます。

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

指定したコンテキスト型に使用するデータベース初期化子を設定します。 データベース初期化子は、指定 DbContext された型を使用してデータベースに初めてアクセスするときに呼び出されます。 Code First コンテキストの既定の戦略は、 の CreateDatabaseIfNotExists<TContext>インスタンスです。

SqlQuery(Type, String, Object[])

指定した型の要素を返す生の SQL クエリを作成します。 型は、クエリから返される列の名前に一致するプロパティを持つ任意の型、または単純なプリミティブ型を指定できます。 型はエンティティ型である必要はありません。 返されたオブジェクトの型がエンティティ型であっても、このクエリの結果がコンテキストによって追跡されることはありません。 SqlQuery(String, Object[])コンテキストによって追跡されるエンティティを返すには、 メソッドを使用します。

SqlQuery<TElement>(String, Object[])

指定したジェネリック型の要素を返す生の SQL クエリを作成します。 型は、クエリから返される列の名前に一致するプロパティを持つ任意の型、または単純なプリミティブ型を指定できます。 型はエンティティ型である必要はありません。 返されたオブジェクトの型がエンティティ型であっても、このクエリの結果がコンテキストによって追跡されることはありません。 SqlQuery(String, Object[])コンテキストによって追跡されるエンティティを返すには、 メソッドを使用します。

ToString()

このクラスのインスタンスは オブジェクトから DbContext 取得され、DbContext または接続をバックアップする実際のデータベースを管理するために使用できます。 管理には、データベースの作成、削除、存在の確認が含まれます。 データベースの削除と存在の確認は、このクラスの静的メソッドを使用して、接続 (つまり、完全なコンテキストなし) のみを使用して実行できることに注意してください。

UseTransaction(DbTransaction)

Entity Framework で外部トランザクション内でコマンドを実行する場合は Database 、オブジェクトの外部で作成されたデータベース トランザクションを渡すことができます。 または、null を渡して、そのトランザクションに関するフレームワークの知識をクリアします。

適用対象