DataContext メソッド ( Visual Studio の LINQ to SQL Tools のコンテキスト内) は、データベースでストアド プロシージャと関数を実行する DataContext クラスのメソッドです。
DataContext クラスは、SQL Server データベースと、そのデータベースにマップされた LINQ to SQL エンティティ クラスの間のコンジットとして機能する LINQ to SQL クラスです。 DataContext クラスには、接続文字列情報と、データベースに接続し、データベース内のデータを操作するためのメソッドが含まれています。 既定では、 DataContext クラスには、LINQ から SQL クラスに更新されたデータをデータベースに送信する SubmitChanges メソッドなど、呼び出すことができるいくつかのメソッドが含まれています。 ストアド プロシージャと関数にマップする追加の DataContext メソッドを作成することもできます。 つまり、これらのカスタム メソッドを呼び出すと、 DataContext メソッドがマップされているデータベース内のストアド プロシージャまたは関数が実行されます。 任意のクラスを拡張するメソッドを追加するのと同様に、 DataContext クラスに新しいメソッドを追加できます。 ただし、DataContextのコンテキストでのメソッドに関する議論では、ストアドプロシージャと関数にマップされるDataContextが議論されています。
メソッド ペイン
DataContextストアド プロシージャと関数にマップされるメソッドは、O/R デザイナーの [メソッド] ペインに表示されます。 [メソッド] ペインは、[エンティティ] ペイン (メイン デザイン 画面) の横にあるペインです。 [メソッド] ウィンドウには、DataContextを使用して作成したすべてのメソッドが一覧表示されます。 既定では、[ メソッド ] ウィンドウは空です。ストアド プロシージャまたは関数を サーバー エクスプローラー または データベース エクスプローラー から O/R デザイナー にドラッグして、 DataContext メソッドを作成し、[ メソッド ] ウィンドウに値を設定します。 詳細については、「 方法: ストアド プロシージャと関数にマップされた DataContext メソッドを作成する (O/R デザイナー)」を参照してください。
注
O/R デザイナーを右クリックし、[メソッド ウィンドウの非表示] または [メソッド ウィンドウの表示] をクリックしてメソッド ウィンドウを開いて閉じるか、キーボード ショートカット Ctrl+1 を使用します。
2 種類の DataContext メソッド
DataContext メソッドは、データベース内のストアド プロシージャと関数にマップされるメソッドです。 O/R デザイナーの [メソッド] ペインで DataContext メソッドを作成および追加できます。 DataContextメソッドには、1 つ以上の結果セットを返すメソッドと返さないメソッドの 2 種類があります。
DataContext 1 つ以上の結果セットを返すメソッド:
アプリケーションでデータベースでストアド プロシージャと関数を実行し、結果を返す必要がある場合に、この種の DataContext メソッドを作成します。 詳細については、「 方法: ストアド プロシージャと関数にマップされた DataContext メソッドを作成する (O/R デザイナー)、System.Data.Linq.ISingleResult<T>、および IMultipleResultsを参照してください。
DataContext 結果セットを返さないメソッド (特定のエンティティ クラスの Insert、Updates、Delete など)。
エンティティ クラスとデータベースの間で変更されたデータを保存するために既定の LINQ to SQL 動作を使用する代わりに、アプリケーションでストアド プロシージャを実行する必要がある場合は、この種の DataContext メソッドを作成します。 詳細については、「 方法: ストアド プロシージャを割り当てて更新、挿入、削除を実行する (O/R デザイナー)」を参照してください。
DataContext メソッドの戻り値の型
ストアド プロシージャと関数を サーバー エクスプローラー または データベース エクスプローラー から O/R デザイナーにドラッグすると、生成された DataContext メソッドの戻り値の型は、項目をドロップする場所によって異なります。 項目を既存のエンティティ クラスに直接ドロップすると、エンティティ クラスの戻り値の型を持つ DataContext メソッドが作成されます。項目を O/R デザイナー (いずれかのペイン) の空の領域にドロップすると、自動的に生成される型を返す DataContext メソッドが作成されます。 自動的に生成される型には、ストアド プロシージャまたは関数の名前とプロパティに一致する名前があり、ストアド プロシージャまたは関数によって返されるフィールドにマップされます。
注
DataContext メソッドの戻り値の型は、メソッド ウィンドウに追加した後で変更できます。 DataContext メソッドの戻り値の型を検査または変更するには、メソッドを選択し、[プロパティ] ウィンドウで戻り値の型プロパティを調べます。 詳細については、「 方法: DataContext メソッドの戻り値の型を変更する (O/R デザイナー)」を参照してください。
データベースから O/R デザイナー画面にドラッグしたオブジェクトは、データベース内のオブジェクトの名前に基づいて自動的に名前が付けられます。 同じオブジェクトを複数回ドラッグすると、名前を区別する番号が新しい名前の末尾に追加されます。 データベース オブジェクト名にスペースまたは Visual Basic または C# でサポートされていない文字が含まれている場合、スペースまたは無効な文字はアンダースコアに置き換えられます。