Freigeben über


ModificationFunctionMapping (EntityTypeMapping)

Im Entity Data Model (EDM) werden die Funktionen im Speicherschema, mit denen die Änderungsverarbeitung für einen EntityType behandelt wird, durch das ModificationFunctionMapping-Element angegeben, wenn es sich um ein untergeordnetes Element eines EntityTypeMapping-Elements handelt. Das ModificationFunctionMapping-Element enthält die Elemente DeleteFunction, InsertFunction und UpdateFunction. Jedes dieser Funktionselemente enthält ein FunctionName-Element, das einer gespeicherten Prozedur im Speichermodell zugeordnet ist.

Mit den Funktionen in einem ModificationFunctionMapping-Element werden die Änderungen an einem EntityType behandelt. In diesen Instanzen ist das ModificationFunctionMapping-Element im EntityTypeMapping-Element enthalten, das seinerseits im EntitySetMapping-Element enthalten ist. In diesem Fall werden Zuordnungen als Teile von Vorgängen zum Erstellen, Ändern und Löschen von Entitäten behandelt.

NoteHinweis

Die Funktionen in einem ModificationFunctionMapping-Element können auch gespeicherten Prozeduren zugeordnet werden, mit denen Instanzen einer Zuordnung zwischen Entitäten erstellt oder gelöscht werden. In diesen Instanzen ist das ModificationFunctionMapping-Element in einem AssociationSetMapping-Element enthalten. Weitere Informationen finden Sie unter Mapping von Zuordnungssätzen zu gespeicherten Prozeduren (Entity Framework) und ModificationFunctionMapping (AssociationSetMapping).

Beispiel

Im folgenden Beispiel wird dargestellt, wie mit dem ModificationFunctionMapping-Element Funktionselemente gespeicherten Prozeduren zugeordnet werden, mit denen Änderungen für einen EntityType behandelt werden. In diesem Beispiel werden mit dem ModificationFunctionMapping-Element Funktionen zugeordnet, mit deren Hilfe die über die Syntax TypeName="AdventureWorksModel.SalesOrderDetail" identifizierte SalesOrderDetail-Entität geändert wird.

Um diese Zuordnung zu verwenden müssen alle drei Aktualisierungsfunktionen – Einfügen, Aktualisieren und Löschen – für SalesOrderDetail-Entitäten gespeicherten Prozeduren zugeordnet werden. Jede der drei Funktionen verwendet die folgenden Elemente, um diese Zuordnung zu vervollständigen:

  • Mithilfe des FunctionName-Elements in den einzelnen Funktionen werden die entsprechenden gespeicherten Prozeduren im Speicherschema mit der Syntax FunctionName="AdventureWorksModel.Store.CreateSalesOrderDetail" identifiziert.

  • Mithilfe der ScalarProperty-Elemente in den einzelnen Funktionselementen werden Eigenschaften der Zielentität den entsprechenden Parametern der gespeicherten Prozedur zugeordnet.

  • Mithilfe der AssociationEnd-Elemente in jedem Function-Element werden die Informationen über Aktualisierungen von Zuordnungen angegeben, wie vom Datenmodell und den entsprechenden Fremdschlüsselbeziehungen im Speichermodell erfordert. Mithilfe des AssociationEnd-Elements innerhalb einer EntityTypeMapping kann eine Beziehung entitätsspezifisch als Verweis oder Fremdschlüssel behandelt werden. Weitere Informationen finden Sie unter Unterstützung für gespeicherte Prozeduren (Entity Framework).

Im folgenden Beispiel wird die vollständige Deklaration des ModificationFunctionMapping-Elements dargestellt. Dieses Schema kann mithilfe der Entwurfstools von Entity Framework generiert werden. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Zuordnen einer Entität zu gespeicherten Prozeduren.

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

Siehe auch

Aufgaben

Gewusst wie: Definieren eines Modells mit einer gespeicherten Prozedur (Entity Framework)

Konzepte

ModificationFunctionMapping (AssociationSetMapping)
Unterstützung für gespeicherte Prozeduren (Entity Framework)

Weitere Ressourcen

Exemplarische Vorgehensweise: Zuordnen einer Entität zu gespeicherten Prozeduren