Compartir a través de


ResultMapping (Elemento) (MSL)

El elemento ResultMapping del lenguaje de especificación de asignaciones (MSL) define la asignación entre una importación de función del modelo conceptual y un procedimiento almacenado de la base de datos subyacente cuando se cumple lo siguiente:

  • La importación de función devuelve un tipo de entidad del modelo conceptual o un tipo complejo.

  • Los nombres de las columnas devueltas por el procedimiento almacenado no coinciden exactamente con los nombres de las propiedades del tipo de entidad o el tipo complejo.

De forma predeterminada, la asignación entre las columnas devueltas por un procedimiento almacenado y un tipo de entidad o un tipo complejo se basa en los nombres de las propiedades y de las columnas. Si los nombres de las columnas no coinciden exactamente con los nombres de las propiedades, debe utilizar el elemento ResultMapping para definir la asignación. Para obtener un ejemplo de la asignación predeterminada, vea FunctionImportMapping (Elemento) (MSL).

El elemento ResultMapping es un elemento secundario del elemento FunctionImportMapping.

El elemento ResultMapping puede tener los siguientes elementos secundarios:

No hay atributos aplicables al elemento ResultMapping.

Ejemplo

Considere el siguiente procedimiento almacenado:

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

Considere también el siguiente tipo de entidad del modelo conceptual:

<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>

Para crear una importación de función que devuelva instancias del tipo de entidad anterior, la asignación entre las columnas devueltas por el procedimiento almacenado y el tipo de entidad se debe definir en 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>

Vea también

Otros recursos

Especificaciones CSDL, SSDL y MSL
Modelado y asignación (Entity Framework)
How to: Import a Stored Procedure