Elemento ResultMapping (MSL)
L'elemento ResultMapping in MSL (Mapping Specification Language) consente di definire il mapping tra un'importazione di funzioni nel modello concettuale e una stored procedure nel database sottostante quando si verificano le condizioni seguenti:
L'operazione di importazione di funzioni restituisce un tipo di entità del modello concettuale.
I nomi delle colonne restituite dalla stored procedure non corrispondono esattamente ai nomi delle proprietà del tipo di entità o del tipo complesso.
Per impostazione predefinita, il mapping tra le colonne restituite da una stored procedure e un tipo di entità o un tipo complesso è basato sui nomi delle colonne e delle proprietà.Se i nomi delle colonne non corrispondono esattamente ai nomi delle proprietà, è necessario utilizzare l'elemento ResultMapping per definire il mapping.Per un esempio del mapping predefinito, vedere Elemento FunctionImportMapping (MSL).
L'elemento ResultMapping è un elemento figlio dell'elemento FunctionImportMapping.
Nell'elemento ResultMapping possono essere inclusi gli elementi figlio seguenti:
All'elemento ResultMapping non possono essere applicati attributi.
Esempio
Si consideri la seguente stored procedure:
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
Si consideri inoltre il tipo di entità del modello concettuale seguente:
<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>
<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>
Per creare un'importazione di funzioni mediante la quale vengono restituite istanze del tipo di entità precedente, il mapping tra le colonne restituite dalla stored procedure e il tipo di entità devono essere definiti in un elemento 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>
<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>
Vedere anche
Attivitá
Procedura: importare una stored procedure