Compartir a través de


ModificationFunctionMapping (Elemento) (MSL)

El elemento ModificationFunctionMapping del lenguaje de especificación de asignaciones (MSL) asigna las funciones de inserción, actualización y eliminación de un tipo de entidad del modelo conceptual a procedimientos almacenados de la base de datos subyacente. El elemento ModificationFunctionMapping también puede asignar las funciones de eliminación e inserción para asociaciones de varios a varios del modelo conceptual a procedimientos almacenados de la base de datos subyacente. Los procedimientos almacenados a los que están asignados las funciones de modificación se deben declarar en el modelo de almacenamiento. Para obtener más información, vea Function (Elemento) (SSDL).

Cc716778.note(es-es,VS.100).gifNota:
Si no asigna las tres operaciones de inserción, actualización o eliminación de un tipo de entidad a procedimientos almacenados, se producirá un error en las operaciones no asignadas al ejecutarlas y se producirá una excepción UpdateException.

Cc716778.note(es-es,VS.100).gifNota:
Si las funciones de modificación para una entidad de una jerarquía de herencia están asignadas a procedimientos almacenados, entonces las funciones de modificación para todos los tipos de la jerarquía deben estar asignadas a procedimientos almacenados.

El elemento ModificationFunctionMapping puede ser un elemento secundario del elemento EntityTypeMapping o el elemento AssociationSetMapping.

El elemento ModificationFunctionMapping puede tener los siguientes elementos secundarios:

No hay atributos aplicables al elemento ModificationFunctionMapping.

Ejemplo

En el ejemplo siguiente se muestra la asignación de conjunto de entidades para el conjunto de entidades People del modelo School. Además de la asignación de columnas para el tipo de entidad Person, se muestra la asignación de las funciones de inserción, actualización y eliminación del tipo Person. Las funciones asignadas se declaran en el modelo de almacenamiento.

<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="SchoolModel.Person">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="LastName" ColumnName="LastName" />
      <ScalarProperty Name="FirstName" ColumnName="FirstName" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <ScalarProperty Name="EnrollmentDate" 
                      ColumnName="EnrollmentDate" />
    </MappingFragment>
</EntityTypeMapping>
  <EntityTypeMapping TypeName="SchoolModel.Person">
    <ModificationFunctionMapping>
      <InsertFunction FunctionName="SchoolModel.Store.InsertPerson">
        <ScalarProperty Name="EnrollmentDate"
                        ParameterName="EnrollmentDate" />
        <ScalarProperty Name="HireDate" ParameterName="HireDate" />
        <ScalarProperty Name="FirstName" ParameterName="FirstName" />
        <ScalarProperty Name="LastName" ParameterName="LastName" />
        <ResultBinding Name="PersonID" ColumnName="NewPersonID" />
      </InsertFunction>
      <UpdateFunction FunctionName="SchoolModel.Store.UpdatePerson">
        <ScalarProperty Name="EnrollmentDate"
                        ParameterName="EnrollmentDate"
                        Version="Current" />
        <ScalarProperty Name="HireDate" ParameterName="HireDate"
                        Version="Current" />
        <ScalarProperty Name="FirstName" ParameterName="FirstName"
                        Version="Current" />
        <ScalarProperty Name="LastName" ParameterName="LastName"
                        Version="Current" />
        <ScalarProperty Name="PersonID" ParameterName="PersonID"
                        Version="Current" />
      </UpdateFunction>
      <DeleteFunction FunctionName="SchoolModel.Store.DeletePerson">
        <ScalarProperty Name="PersonID" ParameterName="PersonID" />
      </DeleteFunction>
    </ModificationFunctionMapping>
  </EntityTypeMapping>
</EntitySetMapping>

Ejemplo

En el siguiente ejemplo se muestra la asignación del conjunto de asociaciones CourseInstructor en el modelo School. Además de la asignación de columnas para la asociación CourseInstructor, se muestra la asignación de las funciones de inserción y eliminación de la asociación CourseInstructor. Las funciones asignadas se declaran en el modelo de almacenamiento.

<AssociationSetMapping Name="CourseInstructor" 
                       TypeName="SchoolModel.CourseInstructor" 
                       StoreEntitySet="CourseInstructor">
  <EndProperty Name="Person">
    <ScalarProperty Name="PersonID" ColumnName="PersonID" />
  </EndProperty>
  <EndProperty Name="Course">
    <ScalarProperty Name="CourseID" ColumnName="CourseID" />
  </EndProperty>
  <ModificationFunctionMapping>
    <InsertFunction FunctionName="SchoolModel.Store.InsertCourseInstructor" >   
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </InsertFunction>
    <DeleteFunction FunctionName="SchoolModel.Store.DeleteCourseInstructor">
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </DeleteFunction>
  </ModificationFunctionMapping>
</AssociationSetMapping>

Vea también

Tareas

Cómo: Definir un modelo con un procedimiento almacenado (Entity Framework)

Otros recursos

Walkthrough: Mapping an Entity to Stored Procedures
Especificaciones CSDL, SSDL y MSL