次の方法で共有


FunctionImportMapping 要素 (MSL)

マッピング仕様言語 (MSL) の FunctionImportMapping 要素は、概念モデルの関数インポートと基になるデータベースのストアド プロシージャまたは関数の間のマッピングを定義します。関数インポートは概念モデル内で、ストアド プロシージャはストレージ モデル内で宣言する必要があります。詳細については、「FunctionImport 要素 (CSDL)」および「Function 要素 (SSDL)」を参照してください。

注意

既定では、関数インポートが概念モデル エンティティ型または複合型を返す場合、基になるストアド プロシージャが返す列の名前が概念モデル型のプロパティの名前と正確に一致する必要があります。列の名前がプロパティの名前と完全には一致しない場合は、ResultMapping 要素でマッピングを定義する必要があります。

FunctionImportMapping 要素には、次の子要素を含めることができます。

適用可能な属性

次の表は、FunctionImportMapping 要素に適用できる属性を示しています。

属性名

必須

FunctionImportName

はい

マップされる概念モデルの関数インポートの名前。

FunctionName

有効

マップされるストレージ モデルの関数の名前空間修飾名。

次の例は、School モデルに基づいています。ストレージ モデルの次の関数について考えます。

<Function Name="GetStudentGrades" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
  <Parameter Name="StudentID" Type="int" Mode="In" />
</Function>
<Function Name="GetStudentGrades" Aggregate="false" 
          BuiltIn="false" NiladicFunction="false" 
          IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" 
          Schema="dbo">
  <Parameter Name="StudentID" Type="int" Mode="In" />
</Function>

また、概念モデルのこの関数インポートについて考えます。

<FunctionImport Name="GetStudentGrades" EntitySet="StudentGrades" ReturnType="Collection(SchoolModel.StudentGrade)">
  <Parameter Name="StudentID" Mode="In" Type="Int32" />
</FunctionImport>
<FunctionImport Name="GetStudentGrades" EntitySet="StudentGrades" 
                ReturnType="Collection(SchoolModel.StudentGrade)">
  <Parameter Name="StudentID" Mode="In" Type="Int32" />
</FunctionImport>

次の例は、上記の関数および関数インポートを互いにマップするのに使用する FunctionImportMapping 要素を示します。

<FunctionImportMapping FunctionImportName="GetStudentGrades" FunctionName="SchoolModel.Store.GetStudentGrades" />
<FunctionImportMapping FunctionImportName="GetStudentGrades"
                       FunctionName="SchoolModel.Store.GetStudentGrades" />

関連項目

タスク

方法: ストアド プロシージャをインポートする

その他の技術情報

CSDL、SSDL、および MSL 仕様

モデリングとマッピング