Elemento ComplexTypeMapping (MSL)
L'elemento ComplexTypeMapping in MSL (Mapping Specification Language) è un elemento figlio dell'elemento ResultMapping e 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:
Un tipo complesso concettuale viene restituito dall'importazione di funzioni.
I nomi delle colonne restituite dalla stored procedure non corrispondono esattamente ai nomi delle proprietà del tipo complesso.
Per impostazione predefinita, il mapping tra le colonne restituite da una stored procedure e 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 ComplexTypeMapping per definire il mapping. Per un esempio del mapping predefinito, vedere Elemento FunctionImportMapping (MSL).
Nell'elemento ComplexTypeMapping possono essere inclusi gli elementi figlio seguenti:
- ScalarProperty (zero o più elementi)
Attributi applicabili
Nella tabella riportata di seguito vengono descritti gli attributi applicabili all'elemento ComplexTypeMapping.
Nome attributo | È obbligatorio | Valore |
---|---|---|
TypeName |
Sì |
Nome completo dello spazio dei nomi del tipo complesso di cui è in corso il mapping. |
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 anche il tipo complesso del modello concettuale seguente:
<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>
Per creare un'importazione di funzioni mediante la quale vengono restituite istanze del tipo complesso precedente, il mapping tra le colonne restituite dalla stored procedure e il tipo di entità deve essere definito in un elemento 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>
Vedere anche
Concetti
Altre risorse
Modellazione e mapping (Entity Framework)
How to: Import a Stored Procedure
How to: Map a Function Import to a Complex Type