ModificationFunctionMapping(EntityTypeMapping)
EDM(엔터티 데이터 모델)에서 ModificationFunctionMapping 요소는 EntityTypeMapping 요소의 자식 요소일 경우 EntityType의 변경 처리를 수행하는 저장소 스키마의 함수를 지정합니다. ModificationFunctionMapping 요소에는 DeleteFunction, InsertFunction 및 UpdateFunction 요소가 포함됩니다. 이러한 각 함수 요소에는 저장소 모델의 저장 프로시저에 매핑되는 FunctionName 요소가 들어 있습니다.
ModificationFunctionMapping 요소의 함수는 EntityType 변경을 처리합니다. 이러한 인스턴스에서 ModificationFunctionMapping 요소는 EntityTypeMapping 요소에 포함되고, 이 요소는 다시 EntitySetMapping 요소에 포함됩니다. 이 경우 연결은 만들거나 수정 또는 삭제되는 엔터티에 대한 작업의 일부로 처리됩니다.
참고 |
---|
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)