Partager via


Élément ComplexTypeMapping (MSL)

Dans le langage MSL (Mapping Specification Language), l'élément ComplexTypeMapping est un enfant de l'élément ResultMapping et définit le mappage entre une importation de fonction dans le modèle conceptuel et une procédure stockée de la base de données sous-jacente lorsque les conditions suivantes sont réunies :

  • L'importation de fonction retourne un type complexe conceptuel.

  • Les noms de colonne retournés par la procédure stockée ne correspondent pas exactement aux noms de propriété du type complexe.

Par défaut, le mappage entre les colonnes retournées par une procédure stockée et un type complexe est basé sur les noms de colonne et de propriété. Si les noms de colonne ne correspondent pas exactement aux noms de propriété, vous devez utiliser l'élément ComplexTypeMapping pour définir le mappage. Pour obtenir un exemple du mappage par défaut, consultez Élément FunctionImportMapping (MSL).

L'élément ComplexTypeMapping peut avoir les éléments enfants suivants :

Attributs applicables

Le tableau ci-dessous décrit les attributs applicables à l'élément ComplexTypeMapping.

Nom d'attribut Requis Valeur

TypeName

Oui

Nom qualifié par un espace de noms du type complexe mappé.

Exemple

Considérons la procédure stockée suivante :

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

De même, considérons le type complexe de modèle conceptuel suivant :

<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>

Pour créer une importation de fonction qui retourne des instances du type complexe précédent, le mappage entre les colonnes retournées par la procédure stockée et le type d'entité doit être défini dans un élément 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>

Voir aussi

Concepts

Élément ScalarProperty (MSL)

Autres ressources

Modélisation et mappage (Entity Framework)
How to: Import a Stored Procedure
How to: Map a Function Import to a Complex Type