ModificationFunctionMapping (EntityTypeMapping)

Dans le modèle EDM (Entity Data Model), l'élément ModificationFunctionMapping, lorsqu'il est un élément enfant d'un élément EntityTypeMapping, spécifie des fonctions dans le schéma de stockage qui gère le traitement des modifications pour un EntityType. L'élément ModificationFunctionMapping contient les éléments DeleteFunction, InsertFunction et UpdateFunction. Chacun de ces éléments Function inclut un élément FunctionName qui mappe à une procédure stockée dans le modèle de stockage.

Les fonctions d'un élément ModificationFunctionMapping gère les modifications apportées à un EntityType. Dans ces instances, l'élément ModificationFunctionMapping est contenu dans l'élément EntityTypeMapping qui, lui-même, est contenu dans l'élément EntitySetMapping. Dans ce cas, les associations sont gérées dans le cadre des opérations sur les entités créées, modifiées ou supprimées.

NoteRemarque

Les fonctions d'un élément ModificationFunctionMapping peuvent également mapper à des procédures stockées qui créent ou suppriment des instances d'une association entre des entités existantes. Dans ces instances, l'élément ModificationFunctionMapping est contenu dans un élément AssociationSetMapping. Pour plus d'informations, voir Mappage d'ensembles d'associations à des procédures stockées (Entity Framework) et ModificationFunctionMapping (AssociationSetMapping).

Exemple

L'exemple suivant montre comment l'élément ModificationFunctionMapping mappe des éléments de fonction à des procédures stockées qui gèrent les modifications d'un EntityType. Dans cet exemple, l'élément ModificationFunctionMapping mappe des fonctions qui modifient l'entité SalesOrderDetail identifiées par la syntaxe TypeName="AdventureWorksModel.SalesOrderDetail".

Pour utiliser ce mappage, les fonctions de mise à jour (insertion, mise à jour et suppression) sur les entités SalesOrderDetail doivent mapper à des procédures stockées. Chacune des trois fonctions utilise les éléments suivants pour effectuer ce mappage :

  • L'élément FunctionName de chaque élément Function identifie chaque procédure stockée correspondante dans le schéma de stockage en utilisant la syntaxe suivante : FunctionName="AdventureWorksModel.Store.CreateSalesOrderDetail".

  • Les éléments ScalarProperty de chaque élément Function mappent les propriétés de l'entité cible aux paramètres correspondants dans la procédure stockée.

  • Les éléments AssociationEnd de chaque élément Function spécifient les détails des mises à jour des associations comme requis par les relations du modèle de données et des clés étrangères correspondantes dans le modèle de stockage. L'élément AssociationEnd du EntityTypeMapping vous permet de traiter une relation comme une référence, ou clé étrangère, spécifique à l'entité. Pour plus d'informations, voir Prise en charge des procédures stockées (Entity Framework).

L'exemple suivant présente la déclaration complète de l'élément ModificationFunctionMapping. Ce schéma peut être généré par les outils de conception Entity Framework. Pour plus d'informations, voir Procédure pas à pas : mappage d'une entité à des procédures stockées.

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

Voir aussi

Tâches

Procédure : définir un modèle avec une procédure stockée (Entity Framework)

Concepts

ModificationFunctionMapping (AssociationSetMapping)
Prise en charge des procédures stockées (Entity Framework)

Autres ressources

Procédure pas à pas : mappage d'une entité à des procédures stockées