ResultMapping 要素 (MSL)

マッピング仕様言語 (MSL) の ResultMapping 要素は、次の条件を満たす場合に、概念モデルの関数インポートと基になるデータベースのストアド プロシージャ間のマッピングを定義します。

  • 関数インポートが概念モデルのエンティティ型または複合型を返す場合

  • ストアド プロシージャが返す列の名前が、エンティティ型または複合型のプロパティの名前と完全には一致しない場合

既定では、ストアド プロシージャが返す列とエンティティ型または複合型とのマッピングは、列およびプロパティの名前に基づいています。 If column names do not exactly match property names, you must use the ResultMapping element to define the mapping. 既定のマッピングの例については、「FunctionImportMapping 要素 (MSL)」を参照してください。

ResultMapping 要素は、FunctionImportMapping 要素の子要素です。

The ResultMapping element can have the following child elements:

ResultMapping 要素に適用できる属性はありません。

次のストアド プロシージャを考えてみます。

CREATE PROCEDURE [dbo].[GetGrades]
            @student_Id int
            AS
            SELECT  EnrollmentID as enroll_id, 
                    Grade as grade, 
                    CourseID as course_id, 
                    StudentID as student_id 
            FROM dbo.StudentGrade
            WHERE StudentID = @student_Id

また、次の概念モデルのエンティティ型を考えてみます。

<EntityType Name="StudentGrade">
  <Key>
    <PropertyRef Name="EnrollmentID" />
  </Key>
  <Property Name="EnrollmentID" Type="Int32" Nullable="false" 
            annotation:StoreGeneratedPattern="Identity" />
  <Property Name="CourseID" Type="Int32" Nullable="false" />
  <Property Name="StudentID" Type="Int32" Nullable="false" />
  <Property Name="Grade" Type="Decimal" Precision="3" Scale="2" />
</EntityType>

以前のエンティティ型のインスタンスを返す関数インポートを作成するには、ストアド プロシージャが返す列とエンティティ型の間のマッピングを ResultMapping 要素内で定義する必要があります。

<FunctionImportMapping FunctionImportName="GetGrades"
                       FunctionName="SchoolModel.Store.GetGrades" >
  <ResultMapping>
    <EntityTypeMapping TypeName="SchoolModel.StudentGrade">
      <ScalarProperty Name="EnrollmentID" ColumnName="enroll_id"/>
      <ScalarProperty Name="CourseID" ColumnName="course_id"/>
      <ScalarProperty Name="StudentID" ColumnName="student_id"/>
      <ScalarProperty Name="Grade" ColumnName="grade"/>
    </EntityTypeMapping>
  </ResultMapping>
</FunctionImportMapping>

参照

その他のリソース

CSDL、SSDL、および MSL 仕様
モデリングとマッピング (Entity Framework)
How to: Import a Stored Procedure