É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 :
- ScalarProperty (zéro, un ou plusieurs éléments).
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
Autres ressources
Modélisation et mappage (Entity Framework)
How to: Import a Stored Procedure
How to: Map a Function Import to a Complex Type