InsertFunction (EntityTypeMapping)

Entity Data Model (EDM) の EntityTypeMapping 要素の子要素として、ModificationFunctionMapping 要素の InsertFunction 要素は、新しいエンティティを作成するストアド プロシージャを識別します。

新しいエンティティを作成するために、InsertFunction 要素は、ストレージ スキーマのエンティティのプロパティを、データベース内のストアド プロシージャのパラメータにマップします。ストアド プロシージャは、ストレージのエンティティの新しいインスタンスを作成します。

次の例では、InsertFunction 要素は、Adventureworks Sales Model の SalesOrderDetail エンティティの新しいインスタンスを作成するストアド プロシージャをマップします。InsertFunction 要素の各 ScalarProperty 子要素は、SalesOrderDetail エンティティのプロパティをストアド プロシージャのパラメータにマップします。これらのエンティティをマップするために、ScalarProperty 子要素は次の属性を使用します。

  • Name 属性は、マップ対象の SalesOrderDetail エンティティのプロパティを識別します。

  • ParameterName 属性は、SalesOrderDetail エンティティのプロパティをマップするストアド プロシージャのパラメータを識別します。

  • Version 属性は、データがデータベースから読み取った元のデータであるか、クライアント コードによって変更された可能性のある現在のデータであるかを示します。

ScalarProperty 子要素に加えて、InsertFunction 要素には、作成されるエンティティがインスタンス化する可能性のあるアソシエーションをマップする AssociationEnd 要素が含まれます。詳細については、「AssociationEnd (EntityTypeMapping)」を参照してください。

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

参照

処理手順

ストアド プロシージャを使用してモデルを定義する方法 (Entity Framework)

概念

ストアド プロシージャのサポート (Entity Framework)
ModificationFunctionMapping (AssociationSetMapping)
DeleteFunction (EntityTypeMapping)
UpdateFunction (EntityTypeMapping)