ModificationFunctionMapping (EntityTypeMapping)
在 Entity Data Model (EDM) 中,當 ModificationFunctionMapping 項目是 EntityTypeMapping 項目的子項目時,它會指定儲存結構描述中可處理 EntityType 之變更處理的函式。ModificationFunctionMapping 項目包含 DeleteFunction、InsertFunction 和 UpdateFunction 項目。其中每個函式項目都包含對應至儲存模型中之預存程序 (Stored Procedure) 的 FunctionName 項目。
ModificationFunctionMapping 項目中的函式會處理對 EntityType 所做的變更。在這些執行個體 (Instance) 中,ModificationFunctionMapping 項目由 EntityTypeMapping 項目所包含,而後者由 EntitySetMapping 項目所包含。在此情況下,關聯會當做所建立、修改或刪除之實體的作業一部分處理。
附註 |
---|
ModificationFunctionMapping 項目中的函式也可以對應至建立或刪除現有實體之間關聯執行個體的預存程序。在這些執行個體中,ModificationFunctionMapping 項目由 AssociationSetMapping 項目所包含。如需詳細資訊,請參閱將關聯集對應至預存程序 (Entity Framework) 和 ModificationFunctionMapping (AssociationSetMapping)。 |
範例
下列範例會顯示 ModificationFunctionMapping 項目如何將函式項目對應至處理 EntityType 之變更的預存程序。在這個範例中,ModificationFunctionMapping 項目會對應修改 TypeName="AdventureWorksModel.SalesOrderDetail"
語法所識別之 SalesOrderDetail
實體的函式。
若要使用這個對應,SalesOrderDetail
實體的三個更新函式 (insert、update 和 delete) 都必須對應至預存程序。其中每個函式都會使用下列項目來完成此對應:
每個函式項目中的 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>
另請參閱
工作
HOW TO:定義具有預存程序的模型 (Entity Framework)
概念
ModificationFunctionMapping (AssociationSetMapping)
預存程序支援 (Entity Framework)