Partager via


Élément ResultMapping (MSL)

L'élément ResultMapping en MSL (Mapping Specification Language) définit le mappage entre une importation de fonction dans le modèle conceptuel et une procédure stockée dans la base de données sous-jacente lorsque les éléments suivants sont vrais :

  • L'importation de fonction retourne un type d'entité de modèle conceptuel ou le type complexe.

  • Les noms des colonnes retournés par la procédure stockée ne correspondent pas exactement aux noms des propriétés sur le type d'entité ou le type complexe.

Par défaut, le mappage entre les colonnes retournées par une procédure stockée et un type d'entité ou 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 ResultMapping pour définir le mappage. Pour obtenir un exemple du mappage par défaut, consultez Élément FunctionImportMapping (MSL).

L'élément ResultMapping est un élément enfant de l'élément FunctionImportMapping.

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

Aucun attribut n'est applicable à l'élément ResultMapping.

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 d'entité de modèle conceptuel suivant :

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

Pour créer une importation de fonction qui retourne des instances du type d'entité 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 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>

Voir aussi

Autres ressources

Spécifications CSDL, SSDL et MSL
Modélisation et mappage (Entity Framework)
How to: Import a Stored Procedure