ComplexTypeMapping 要素 (MSL)

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

  • 関数インポートが概念の複合型を返す場合

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

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

The ComplexTypeMapping element can have the following child elements:

適用可能な属性

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

属性名 必須 Value

TypeName

有効

マッピングされている複合型の名前空間修飾名です。

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

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

また、次の概念モデルの複合型を考えてみます。

<ComplexType Name="GradeInfo">
  <Property Type="Int32" Name="EnrollmentID" Nullable="false" />
  <Property Type="Decimal" Name="Grade" Nullable="true" 
            Precision="3" Scale="2" />
  <Property Type="Int32" Name="CourseID" Nullable="false" />
  <Property Type="Int32" Name="StudentID" Nullable="false" />
</ComplexType>

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

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

参照

概念

ScalarProperty 要素 (MSL)

その他のリソース

モデリングとマッピング (Entity Framework)
How to: Import a Stored Procedure
How to: Map a Function Import to a Complex Type