다음을 통해 공유


ModificationFunctionMapping(EntityTypeMapping)

EDM(엔터티 데이터 모델)에서 ModificationFunctionMapping 요소는 EntityTypeMapping 요소의 자식 요소일 경우 EntityType의 변경 처리를 수행하는 저장소 스키마의 함수를 지정합니다. ModificationFunctionMapping 요소에는 DeleteFunction, InsertFunctionUpdateFunction 요소가 포함됩니다. 이러한 각 함수 요소에는 저장소 모델의 저장 프로시저에 매핑되는 FunctionName 요소가 들어 있습니다.

ModificationFunctionMapping 요소의 함수는 EntityType 변경을 처리합니다. 이러한 인스턴스에서 ModificationFunctionMapping 요소는 EntityTypeMapping 요소에 포함되고, 이 요소는 다시 EntitySetMapping 요소에 포함됩니다. 이 경우 연결은 만들거나 수정 또는 삭제되는 엔터티에 대한 작업의 일부로 처리됩니다.

Note참고

ModificationFunctionMapping 요소의 함수는 기존 엔터티 간의 연결 인스턴스를 만들거나 삭제하는 저장 프로시저에도 매핑될 수 있습니다. 이러한 인스턴스에서 ModificationFunctionMapping 요소는 AssociationSetMapping 요소에 포함됩니다. 자세한 내용은 연결 집합을 저장 프로시저에 매핑(Entity Framework)ModificationFunctionMapping(AssociationSetMapping)을 참조하십시오.

예제

다음 예제에서는 ModificationFunctionMapping 요소가 EntityType 변경을 처리하는 저장 프로시저에 함수 요소를 매핑하는 방법을 보여 줍니다. 이 예제에서 ModificationFunctionMapping 요소는 TypeName="AdventureWorksModel.SalesOrderDetail" 구문으로 식별된 SalesOrderDetail 엔터티를 수정하는 함수를 매핑합니다.

이 매핑을 사용하려면 SalesOrderDetail 엔터티에 대한 세 업데이트 함수(삽입, 업데이트 및 삭제)가 모두 저장 프로시저에 매핑되어야 합니다. 세 함수는 각각 다음 요소를 사용하여 이 매핑을 수행합니다.

  • 각 함수 요소의 FunctionName 요소는 FunctionName="AdventureWorksModel.Store.CreateSalesOrderDetail" 구문을 사용하여 저장소 스키마에서 해당하는 각 저장 프로시저를 식별합니다.

  • 각 함수 요소의 ScalarProperty 요소는 대상 엔터티의 속성을 저장 프로시저의 해당 매개 변수에 매핑합니다.

  • Function 요소의 AssociationEnd 요소는 데이터 모델에 필요한 연결 업데이트의 세부 정보 및 저장소 모델에서 해당하는 외래 키 관계를 지정합니다. EntityTypeMapping 내의 AssociationEnd 요소를 사용하여 관계를 엔터티와 관련된 참조 또는 외래 키로 처리할 수 있습니다. 자세한 내용은 저장 프로시저 지원(Entity Framework)을 참조하십시오.

다음 예제에서는 ModificationFunctionMapping 요소의 전체 선언을 보여 줍니다. 이 스키마는 Entity Framework 디자인 도구로 생성할 수 있습니다. 자세한 내용은 연습: 저장 프로시저에 엔터티 매핑을 참조하십시오.

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

참고 항목

작업

방법: 저장 프로시저로 모델 정의(Entity Framework)

개념

ModificationFunctionMapping(AssociationSetMapping)
저장 프로시저 지원(Entity Framework)

기타 리소스

연습: 저장 프로시저에 엔터티 매핑