ModificationFunctionMapping (EntityTypeMapping)

In Entity Data Model (EDM) l'elemento ModificationFunctionMapping, quando è un elemento figlio di un elemento EntityTypeMapping, specifica funzioni nello schema di archiviazione che gestisce l'elaborazione delle modifiche per un oggetto EntityType. L'elemento ModificationFunctionMapping contiene gli elementi DeleteFunction, InsertFunction e UpdateFunction. Ciascuno di questi elementi di funzione include un elemento FunctionName che esegue il mapping a una stored procedure nel modello di archiviazione.

Le funzioni in un elemento ModificationFunctionMapping gestiscono le modifiche apportate a un EntityType. In queste istanze l'elemento ModificationFunctionMapping è contenuto dall'elemento EntityTypeMapping che, a sua volta, è contenuto dall'elemento EntitySetMapping. In questo caso, le associazioni sono gestite come parte di operazioni su entità create, modificate o eliminate.

NoteNota

Le funzioni in un elemento ModificationFunctionMapping possono eseguire il mapping anche a stored procedure che creano o eliminano istanze di un'associazione tra entità esistenti. In queste istanze l'elemento ModificationFunctionMapping è contenuto da un elemento AssociationSetMapping. Per ulteriori informazioni, vedere Mapping di set di associazioni alle stored procedure (Entity Framework) e ModificationFunctionMapping (AssociationSetMapping).

Esempio

Nell'esempio seguente viene illustrato in che modo l'elemento ModificationFunctionMapping esegue il mapping degli elementi di funzione a stored procedure che gestiscono le modifiche per un elemento EntityType. In questo esempio l'elemento ModificationFunctionMapping esegue il mapping delle funzioni che modificano l'entità SalesOrderDetail identificata dalla sintassi, TypeName="AdventureWorksModel.SalesOrderDetail".

Per utilizzare questo mapping, tutte e tre le funzioni di aggiornamento, ovvero inserimento, aggiornamento ed eliminazione, sulle entità SalesOrderDetail devono essere mappate alle stored procedure. Ognuna delle tre funzioni utilizza gli elementi seguenti per completare il mapping:

  • L'elemento FunctionName in ogni elemento di funzione identifica ogni stored procedure corrispondente nello schema di archiviazione tramite la sintassi seguente, FunctionName="AdventureWorksModel.Store.CreateSalesOrderDetail".

  • Gli elementi ScalarProperty in ogni elemento di funzione eseguono il mapping delle proprietà dell'entità di destinazione ai parametri corrispondenti nella stored procedure.

  • Gli elementi AssociationEnd in ogni elemento Function specificano i dettagli degli aggiornamenti alle associazioni come richiesto dal modello di dati e dalle relazioni di chiave esterna corrispondenti nel modello di archiviazione. L'elemento AssociationEnd all'interno di EntityTypeMapping consente di considerare una relazione come riferimento o una chiave esterna, specifico dell'entità. Per ulteriori informazioni, vedere Supporto delle stored procedure (Entity Framework).

Nell'esempio seguente viene mostrata la dichiarazione completa dell'elemento ModificationFunctionMapping. Questo schema può essere generato dagli strumenti di progettazione di Entity Framework. Per ulteriori informazioni, vedere Procedura dettagliata: mapping di un'entità alle stored procedure.

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

Vedere anche

Attività

Procedura: definire un modello con una stored procedure (Entity Framework)

Concetti

ModificationFunctionMapping (AssociationSetMapping)
Supporto delle stored procedure (Entity Framework)

Altre risorse

Procedura dettagliata: mapping di un'entità alle stored procedure