Share via


ModificationFunctionMapping (EntityTypeMapping)

En el Entity Data Model (EDM), el elemento ModificationFunctionMapping, cuando es un elemento secundario de un elemento EntityTypeMapping, especifica las funciones en el esquema de almacenamiento que controlan el procesamiento de cambios para un EntityType. El elemento ModificationFunctionMapping contiene los elementos DeleteFunction, InsertFunction y UpdateFunction. Cada uno de estos elementos de función incluye un elemento FunctionName que se asigna a un procedimiento almacenado en el modelo de almacenamiento.

Las funciones de un elemento ModificationFunctionMapping controlan los cambios de EntityType. En estos casos, el elemento ModificationFunctionMapping está contenido en el elemento EntityTypeMapping que, a su vez, está contenido en el elemento EntitySetMapping. En este caso, las asociaciones se administran como parte de las operaciones en las entidades que se van a crear, modificar o eliminar.

Nota

Las funciones en un elemento ModificationFunctionMapping también pueden asignarse a los procedimientos almacenados que crean o eliminan las instancias de una asociación entre las entidades existentes. En estos casos, el elemento ModificationFunctionMapping está contenido en un elemento AssociationSetMapping. Para obtener más información, vea Asignar conjuntos de asociaciones a procedimientos almacenados (Entity Framework) y ModificationFunctionMapping (AssociationSetMapping).

Ejemplo

El ejemplo siguiente muestra cómo asigna el elemento ModificationFunctionMapping los elementos de función a los procedimientos almacenados que administran los cambios de un EntityType. En este ejemplo, el elemento ModificationFunctionMapping asigna las funciones que modifican la entidad SalesOrderDetail identificada por la sintaxis TypeName="AdventureWorksModel.SalesOrderDetail".

Para usar esta asignación, las tres funcciones (inserción, actualización y eliminación) en las entidades SalesOrderDetail deben asignarse a procedimientos almacenados. Cada una de las tres funciones utiliza los elementos siguientes para completar esta asignación:

  • El elemento FunctionName en cada elemento de función identifica cada procedimiento almacenado correspondiente en el esquema de almacenamiento utilizando la sintaxis siguiente, FunctionName="AdventureWorksModel.Store.CreateSalesOrderDetail".

  • Los elementos ScalarProperty de cada elemento de función asigna las propiedades de la entidad de destino a los parámetros correspondientes en el procedimiento almacenado.

  • Los elementos AssociationEnd de cada elemento Function especifican los detalles de las actualizaciones de las asociaciones tal y como requiere el modelo de datos y las relaciones de clave externa correspondientes en el modelo de almacenamiento. El elemento AssociationEnd dentro de EntityTypeMapping le permite tratar una relación como una referencia, o clave externa, específica de la entidad. Para obtener más información, vea Compatibilidad con los procedimientos almacenados (Entity Framework).

El ejemplo siguiente muestra la declaración completa del elemento ModificationFunctionMapping. Las herramientas de diseño de Entity Framework pueden generar este esquema. Para obtener más información, vea Tutorial: asignar una entidad a procedimientos almacenados.

<ModificationFunctionMapping >
  <InsertFunction
       FunctionName="AdventureWorksModel.Store.CreateSalesOrderDetail">
        <ScalarProperty Name="CarrierTrackingNumber"
              ParameterName="CarrierTrackingNumber" Version="Current"/>
        <ScalarProperty Name="OrderQty" ParameterName="OrderQty"
              Version="Current"/>
        <ScalarProperty Name="ProductID" ParameterName="ProductID"
              Version="Current"/>
        <ScalarProperty Name="SpecialOfferID"
              ParameterName="SpecialOfferID" Version="Current"/>
        <ScalarProperty Name="UnitPrice" ParameterName="UnitPrice"
              Version="Current"/>
        <ScalarProperty Name="UnitPriceDiscount"
              ParameterName="UnitPriceDiscount" Version="Current"/>
        <ScalarProperty Name="rowguid" ParameterName="rowguid" Version="Current"/>
        <ScalarProperty Name="ModifiedDate"
              ParameterName="ModifiedDate" Version="Current"/>
    <AssociationEnd
      AssociationSet="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID"
     From="SalesOrderDetail" To="SalesOrderHeader">
        <ScalarProperty Name="SalesOrderID"
           ParameterName="SalesOrderID" />
    </AssociationEnd>
    <ResultBinding ColumnName="SalesOrderDetailID"
       Name="SalesOrderDetailID" />
    <ResultBinding ColumnName="LineTotal" Name="LineTotal" />
  </InsertFunction>

  <UpdateFunction
     FunctionName="AdventureWorksModel.Store.UpdateSalesOrderDetail" >
        <ScalarProperty Name="OrderQty" ParameterName="OrderQty"  Version="Current"/>
        <ScalarProperty Name="SalesOrderDetailID"
           ParameterName="SalesOrderDetailID" Version="Current"/>
      <AssociationEnd
         AssociationSet="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID"
    From="SalesOrderDetail" To="SalesOrderHeader">
        <ScalarProperty Name="SalesOrderID"
          ParameterName="SalesOrderID" Version="Current" />
       </AssociationEnd>
  </UpdateFunction>

  <DeleteFunction
      FunctionName="AdventureWorksModel.Store.DeleteSalesOrderDetail" >
        <ScalarProperty Name="SalesOrderDetailID"
          ParameterName="SalesOrderDetailID" Version="Original"/>
    <AssociationEnd
      AssociationSet="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID"
         From="SalesOrderDetail" To="SalesOrderHeader">
          <ScalarProperty Name="SalesOrderID"
            ParameterName="SalesOrderID" />
    </AssociationEnd>
  </DeleteFunction>
</ModificationFunctionMapping>

Vea también

Tareas

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

Conceptos

ModificationFunctionMapping (AssociationSetMapping)
Compatibilidad con los procedimientos almacenados (Entity Framework)

Otros recursos

Tutorial: asignar una entidad a procedimientos almacenados