Condividi tramite


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

Altre risorse

Specifiche CSDL, SSDL e MSL

Modellazione e mapping