FunctionImport 要素 (CSDL)
概念スキーマ定義言語 (CSDL) の FunctionImport 要素は、データ ソース内で定義され、オブジェクトが概念モデルを通じて使用できる関数を表します。たとえば、ストレージ モデルの Function 要素を使用して、データベースのストアド プロシージャを表すことができます。概念モデルの FunctionImport 要素は、Entity Framework アプリケーションの対応する関数を表しており、FunctionImportMapping 要素を使用することでストレージ モデル関数にマップされます。関数がアプリケーションで呼び出されると、対応するストアド プロシージャがデータベースで実行されます。
FunctionImport 要素に基づく共通言語ランタイム (CLR) メソッドを Entity Framework アプリケーション用に生成することができます。詳細については、「生成されたコードの概要 (Entity Data Model デザイナー)」および「EdmGen.exe を使用してオブジェクト レイヤー コードを生成する方法」を参照してください。
FunctionImport 要素には、次の子要素をここに示す順序で含めることができます。
Documentation (0 または 1 つの要素を含めることができます)。
Parameter (0 個以上の要素を含めることができます)。
Annotation 要素 (0 個以上の要素を含めることができます)。
関数が受け取る各パラメーターに対して、Parameter 要素を 1 つ定義する必要があります。
適用可能な属性
FunctionImport 要素に適用できる属性を次の表に示します。
属性名 |
必須 |
値 |
---|---|---|
Name |
はい |
インポートされる関数の名前。 |
ReturnType |
いいえ |
関数が返す型。関数が値を返さない場合には、この属性を使用しないでください。それ以外の場合は RowType、ComplexType、EntityType、EDMSimpleType のコレクションである必要があります。 |
EntitySet |
いいえ |
関数がエンティティ型のコレクションを返す場合、EntitySet の値は、コレクションが所属するエンティティ セットである必要があります。そうでない場合には、EntitySet 属性を使用しないでください。 |
注意
FunctionImport 要素には、任意数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は CSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。
例
次の例は、パラメーターを 1 つ受け取ってエンティティ型のコレクションを返す FunctionImport 要素を示します。
<FunctionImport Name="GetStudentGrades"
EntitySet="StudentGrade"
ReturnType="Collection(SchoolModel.StudentGrade)">
<Parameter Name="StudentID" Mode="In" Type="Int32" />
</FunctionImport>