Condividi tramite


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:

Attributi applicabili

Nella tabella riportata di seguito vengono descritti gli attributi applicabili all'elemento ComplexTypeMapping.

Nome attributo È obbligatorio Valore

TypeName

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

Elemento ScalarProperty (MSL)

Altre risorse

Modellazione e mapping (Entity Framework)
How to: Import a Stored Procedure
How to: Map a Function Import to a Complex Type