方法: ストアド プロシージャをインポートする (Entity Data Model ツール)
このトピックでは、ADO.NET Entity Data Model デザイナー (エンティティ デザイナー) を使用してストアド プロシージャをインポートする方法について説明します。
概念モデルに追加されたストアド プロシージャは、関数インポートと呼ばれます。 関数インポートを追加すると、アプリケーション コードから対応するストアド プロシージャを呼び出すことができます。 関数インポートからは、単純型、EntityTypes、または ComplexTypes のコレクションを返すことも、値を返さないことも可能です。
注 : |
---|
エンティティ型の挿入、更新、および削除操作をストアド プロシージャにマップできます。詳細については、「方法: 変更関数をストアド プロシージャにマップする (Entity Data Model ツール)」を参照してください。 |
Entity Data Model ウィザードによってデータベースから .edmx ファイルが生成されるときに、データベース内の各ストアド プロシージャに対応するエントリがストレージ モデルに作成されます。 関数インポートが作成されると、対応するエントリが概念モデルに追加されます。
以下の手順で、関数インポートを作成する方法を説明します。 アプリケーション コードからの関数インポートの呼び出しについては、「How to Execute a Query Using a Stored Procedure」および「チュートリアル: ストアド プロシージャを使用したエンティティ型の取得 (Entity Data Model ツール)」を参照してください。
関数インポートを作成するには
モデル ブラウザーから次のいずれかの手順を実行します。
- ストレージ モデル情報内の [ストアド プロシージャ] フォルダーを開き、対応する関数インポートのないストアド プロシージャをダブルクリックします。
または
- 概念モデル情報の EntityContainer ノード内の [関数インポート] フォルダーを右クリックして、[関数インポートの追加] をクリックします。
[関数インポートの追加] ダイアログ ボックスが表示されます。
新しい関数インポートの設定を入力します。
関数インポートを作成するストアド プロシージャを [ストアド プロシージャ名] フィールドで指定します。 このフィールドは、ストレージ モデル内のすべてのストアド プロシージャが表示されるドロップダウン リストです。 目的のストアド プロシージャが表示されないときは、ストレージ モデルの更新が必要な場合があります。 詳細については、「方法: データベースの変更時に .edmx ファイルを更新する (Entity Data Model ツール)」を参照してください。
関数インポートの名前を [関数インポート名] フィールドで指定します。
戻り値の基本的な 4 つの型である [なし]、[スカラー]、[複合]、または [エンティティ] のいずれかを指定し、ドロップダウン リストで特定の戻り値の型をクリックします。 [複合] を選択した場合は、エンティティ デザイナーで、ストアド プロシージャから返された列に対応するプロパティを持つ新しい複合型を作成できます。
[列情報の取得] をクリックして列の情報を取得します。
[新しい複合型の作成] をクリックします。
[複合] ボックスの一覧で、複合型の名前を編集します。
[OK] をクリックすると、新しい複合型が概念モデルに追加され、関数インポートの戻り値の型がこの新しい型に設定されます。
注 : ストレージ モデル内のストアド プロシージャの定義を変更した場合は、[更新] をクリックすると、返された複合型を自動的に更新できます。
注 : アプリケーションの対象が .NET Framework 3.5 SP1 である場合、複合型は関数インポートの戻り値の型としてサポートされていません。 [OK] をクリックします。
FunctionImport エンティティが概念モデルに作成されます。 詳細については、「FunctionImport Element (CSDL)」を参照してください。
参照
概念
ADO.NET Entity Data Model デザイナー