ストアド プロシージャのサポート (Entity Framework)

[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

エンティティ データ モデル (EDM) は、データの取得および変更に対して、ストアド プロシージャの使用をサポートします。取得、挿入、更新、およびデータを削除するのには、ストアド プロシージャを使えます。

多くのデータベース アプリケーションは、ストアド プロシージャは、次のような利点に依存します。

  • セキュリティ。データベースのユーザーはテーブルまたはその他のデータベース オブジェクトへの直接のアクセスが拒否できます。データベース管理者は、許可データ アクセス用の 1 つのエントリ ポイントを作成するストアド プロシージャでのアクセス許可を実行する専用必要があります。SQL インジェクション攻撃の攻撃対象領域が大幅に減少します。出入力パラメーターの既定値を使用するよう構成パラメーターの厳密な検証を有効にします。ストアド プロシージャでの検証コード利用可能な動作は制限できます。

  • カプセル化します。複雑なデータ ロジック、明示的なトランザクションおよびその他のデータベース操作をストアド プロシージャのコードで 1 回記述および複数のクライアント アプリケーションから実行できます。クライアント アプリケーションからのラウンド トリップ数の削減、サーバーサイド コードからエラー、例外、および同時実行制御違反を処理できます。クライアント アプリケーション ストアド プロシージャのシグネチャが変更されていない限り与えずストアド プロシージャのコードを変更できます。

  • 予測します。データベース管理者頻繁必ずクライアント アプリケーション サーバーのパフォーマンスに悪影響を及ぼす及ぼす効率の悪いクエリを実行しないこと。許容可能な実行プランを生成する、ストアド プロシージャ内のクエリを個別に調整することができます。チューニング、に加えて well-written ストアド プロシージャ ブロックやデッドロックなどのサーバー側のトラブルシューティング簡略化します。

  • パフォーマンス。状況によっては、ストアド プロシージャを使用できないパフォーマンスの向上があります。最新のデータベース エンジン通常扱う動的 SQL ステートメントとしてステートメントとして効率的にストアド プロシージャは、データベース管理者複数な管理パフォーマンス ストアド プロシージャの使用を適用します。

データを返すストアド プロシージャは、EDM オブジェクト モデルの名前付き関数から呼び出すは。データを更新するストアド プロシージャがエンティティを関連付けマップされの操作を定義] ストアド プロシージャが実装およびマップしない場合に、システムで生成されたメソッドを使用はときに暗黙的に呼び出されます。

ここでは使用で指定されたマッピングを通じてデータを更新するストアド プロシージャについて説明します、ModificationFunctionMapping スキーマの要素。ストアド プロシージャのデータの使用を取得する、FunctionImportMapping 要素。データの取得は変更しないでストアド プロシージャに関するクイック-開始] を参照してください。方法:ストアド プロシージャ (Entity Framework) とモデルを定義します。.

ストアド プロシージャによって管理できる別のシナリオには、挿入または既存のエンティティ間の関連付けのインスタンスの削除です。これらの操作へのストアド プロシージャのマッピングに記載されてマッピングの関連付けをストアド プロシージャ (Entity Framework) を設定します.

既定では、Entity Framework の概念および記憶域のスキーマ間のマッピングに基づくデータベースのテーブルに対して直接操作を実行します。構成、Entity Framework をストアド プロシージャを使用してデータを更新する記憶域とのマッピング スキーマへの変更が必要です。

次の表に、EDM でサポートされるいくつかのシナリオでのストアド プロシージャの使用を説明するトピックへのリンクを示します。

操作

SSDL 要件

MSL 要件

CSDL 要件

エンティティのオブジェクトを返すクエリを実行します。詳細についてを参照してください。方法:ストアド プロシージャ (Entity Framework) とモデルを定義します。.

追加します。関数 要素内のスキーマ 記憶域モデル ファイルの要素です。この要素は、エンティティの種類を表すストアド プロシージャを参照します。

追加します。FunctionImportMapping 要素にはEntityContainerMapping 概念モデル ファイルの要素です。

追加します。FunctionImport 要素にはEntityContainer 概念モデル ファイルの要素です。

ストアド プロシージャを挿入、更新、およびエンティティ データを削除を使用します。詳細についてを参照してください。方法:定義、モデルの変更でストアド プロシージャ (Entity Framework).

追加します。関数 要素内のスキーマ 記憶域モデル ファイルの要素です。各挿入、この 1 回の更新、およびストアド プロシージャを削除します。

追加します。ModificationFunctionMapping 要素にはEntityTypeMapping エンティティの種類の要素。この要素を定義する必要があります。InsertFunction, UpdateFunctionandDeleteFunction 要素の挿入、更新、およびストアド プロシージャを削除します。エンティティが、リレーションシップ、AssociationEnd 要素には、関連付けを指定します。

なし。

ストアド プロシージャを作成またはリンク テーブルを使用してデータ ソースに実装されているエンティティ型の間の多対多リレーションシップを削除する使用は。詳細についてを参照してください。マッピングの関連付けをストアド プロシージャ (Entity Framework) を設定します.

追加します。関数 要素内のスキーマ 記憶域モデル ファイルの要素です。各ストアド プロシージャの作成や、データ ソース内のリレーションシップを削除したらこれを行います。

追加します。ModificationFunctionMapping 要素にはAssociationSetMapping 要素 関連付けの要素です。この要素を定義する必要があります。InsertFunction およびDeleteFunction 作成およびこの関連付けの関係を削除するストアド プロシージャの要素。

なし。

データの変更に使用するストアド プロシージャは、Entity Framework によって生成されたメソッドを置き換えます。ストアド プロシージャは、されるので、変更は、EDM の概念のスキーマまたは既存のアプリケーション コードで定義された必要暗黙的に、呼び出します。

CSDL

次の概念のスキーマ定義言語 (CSDL) セグメントを定義します。SalesOrderHeader エンティティとSalesOrderDetail エンティティです。両方の種類は、SQL Server 2008 と SQL Server 2005 付属 AdventureWorks サンプル データベースに基づきます。CSDL CSDL スキーマ変更をストアド プロシージャを使用して、EDM のデータを変更する必要はありませんが、完全性、CSDL スキーマがここで表示。このスキーマでは、簡潔にするためのいくつかのプロパティ定義省かれます。サンプルでは、完全なスキーマを参照しますAdventureWorks 販売モデル.

      < スキーマ名前空間 ="AdventureWorksModel"エイリアス"自己 ="xmlns="http://schemas.microsoft.com/ado/2006/04/edm >< EntityContainer 名 ="AdventureWorksEntities">< EntitySet 名 ="AddressType"EntityType="AdventureWorksModel.AddressType"/>< EntitySet 名 =「連絡先」EntityType="AdventureWorksModel.Contact"/>< EntitySet 名 =「製品」EntityType="AdventureWorksModel.Product"/>< EntitySet 名 ="SalesOrderDetail"EntityType="AdventureWorksModel.SalesOrderDetail"/>< EntitySet 名 ="SalesOrderHeader"EntityType="AdventureWorksModel.SalesOrderHeader"/>< AssociationSet 名 ="FK_SalesOrderHeader_Contact_ContactID""Association="AdventureWorksModel.FK_SalesOrderHeader_Contact_ContactID >< 終端ロール「連絡先」=EntitySet =「連絡先」/>< 終端ロール ="SalesOrderHeader"EntitySet ="SalesOrderHeader"/></AssociationSet >< AssociationSet 名 ="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID""Association="AdventureWorksModel.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID >< 終端ロール ="SalesOrderHeader"EntitySet ="SalesOrderHeader"/>< 終端ロール ="SalesOrderDetail"EntitySet ="SalesOrderDetail"/></AssociationSet >

</EntityContainer >

        
< EntityType 名 ="SalesOrderDetail">< キー >< PropertyRef 名 ="SalesOrderID"/>< PropertyRef 名 ="SalesOrderDetailID"/></キー >< プロパティ名 ="SalesOrderID"型 ="Int32"null 許容 ="false"/>< プロパティ名 ="SalesOrderDetailID"型 ="Int32"null 許容 ="false"/>< プロパティ名 ="CarrierTrackingNumber"型 =「文字列」/>< プロパティ名 ="OrderQty"型 =「Int16 型」null 許容 ="false"/>< プロパティ名"[商品コード] =型 ="Int32"null 許容 ="false"/>< プロパティ名 ="SpecialOfferID"型 ="Int32"null 許容 ="false"/>< プロパティ名 =「単価」型 =「10 進数」null 許容 ="false"/>< プロパティ名 ="UnitPriceDiscount"型 =「10 進数」null 許容 ="false"/>< プロパティ名 ="LineTotal"型 =「10 進数」null 許容 ="false"/>< プロパティ名 ="rowguid"型 ="GUID"null 許容 ="false"/>< プロパティ名 ="ModifiedDate"型 ="日付と時刻]null 許容 ="false"/>< NavigationProperty 名 ="SalesOrderHeader"Relationship="AdventureWorksModel.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID"FromRole ="SalesOrderDetail"ToRole ="SalesOrderHeader"/></EntityType >

        <EntityType Name="SalesOrderHeader"> <Key> <PropertyRef Name="SalesOrderID" /> </Key> <Property Name="SalesOrderID" Type="Int32" Nullable="false" /> <Property Name="RevisionNumber" Type="Byte" Nullable="false" /> <Property Name="OrderDate" Type="DateTime" Nullable="false" /> <Property Name="DueDate" Type="DateTime" Nullable="false" /> <Property Name="ShipDate" Type="DateTime" /> <Property Name="Status" Type="Byte" Nullable="false" /> <Property Name="OnlineOrderFlag" Type="Boolean" Nullable="false" /> <Property Name="SalesOrderNumber" Type="String" Nullable="false" /> <Property Name="PurchaseOrderNumber" Type="String" /> <Property Name="AccountNumber" Type="String" /> <Property Name="CustomerID" Type="Int32" Nullable="false" /> <Property Name="SalesPersonID" Type="Int32" /> <Property Name="TerritoryID" Type="Int32" /> <Property Name="BillToAddressID" Type="Int32" Nullable="false" /> <Property Name="ShipToAddressID" Type="Int32" Nullable="false" /> <Property Name="ShipMethodID" Type="Int32" Nullable="false" /> <Property Name="CreditCardID" Type="Int32" /> <Property Name="CreditCardApprovalCode" Type="String" /> <Property Name="CurrencyRateID" Type="Int32" /> <Property Name="SubTotal" Type="Decimal" Nullable="false" /> <Property Name="TaxAmt" Type="Decimal" Nullable="false" /> <Property Name="Freight" Type="Decimal" Nullable="false" /> <Property Name="TotalDue" Type="Decimal" Nullable="false" /> <Property Name="Comment" Type="String" /> <Property Name="rowguid" Type="Guid" Nullable="false" /> <Property Name="ModifiedDate" Type="DateTime" Nullable="false" /> <NavigationProperty Name="Contact" Relationship="AdventureWorksModel.FK_SalesOrderHeader_Contact_ContactID" FromRole="SalesOrderHeader" ToRole="Contact" /> <NavigationProperty Name="SalesOrderDetail" Relationship="AdventureWorksModel.FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID" FromRole="SalesOrderHeader" ToRole="SalesOrderDetail" /> </EntityType>

< EntityType 名 ="AddressType">< キー >< PropertyRef 名 ="AddressTypeID"/></キー ><!--他のプロパティ--></EntityType >

< EntityType 名 =「連絡先」>< キー >< PropertyRef 名 ="ContactID"/></キー ><!--他のプロパティ-->< NavigationProperty 名 ="SalesOrderHeader"Relationship="AdventureWorksModel.FK_SalesOrderHeader_Contact_ContactID"FromRole =「連絡先」ToRole ="SalesOrderHeader"/></EntityType >

< EntityType 名 =「製品」>< キー >< PropertyRef 名 =「商品コード」/></キー ><!--他のプロパティ--></EntityType >


< 関連名 ="FK_SalesOrderHeader_Contact_ContactID">< 終端ロール「連絡先」=Type="AdventureWorksModel.Contact"多重度 =「1」/>< 終端ロール ="SalesOrderHeader"Type="AdventureWorksModel.SalesOrderHeader"多重度 ="*"/>< と関連付け >

< 関連名 ="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID">< 終端ロール ="SalesOrderHeader"Type="AdventureWorksModel.SalesOrderHeader"多重度「1」= >< OnDelete 操作 =「連鎖」/></終了 >< 終端ロール ="SalesOrderDetail"Type="AdventureWorksModel.SalesOrderDetail"多重度 ="*"/>< ReferentialConstraint >< プリンシパル ロール"SalesOrderHeader"= >< PropertyRef 名 ="SalesOrderID"/></プリンシパル >< 依存ロール"SalesOrderDetail"= >< PropertyRef 名 ="SalesOrderID"/></依存 ></ReferentialConstraint >< と関連付け ></スキーマ >

CSDL の詳細についてを参照してください。概念スキーマ (CSDL).

例で使用するストアド プロシージャ

ストアド プロシージャの使用をデモンストレーションのために、次のデータベース スクリプトは、AdventureWorks データベースの変更に提供されます。スクリプトを作成、更新、およびのインスタンスを削除するストアド プロシージャを作成します。SalesOrderDetail 記憶域。

メモメモ :

Entity Framework を使用するストアド プロシージャ内のトランザクション管理は、Entity Framework 処理に競合があるためにしないでください。

CreateSalesOrderDetail プロシージャ

次のスクリプトを追加するストアド プロシージャを作成します。SalesOrderDetail 記憶域への項目。スクリプトには次の使用例をテスト後に不要な場合に、ストアド プロシージャを削除するために使用できるコード含まれています。ストアド プロシージャを削除するには後の行数を省略します。プロシージャを削除します。 スクリプトを実行します。

使用して [AdventureWorks] GO SET ANSI_NULLS GO SET 引用符で囲まれた識別子に GO 場合 OBJECT_ID ('dbo.CreateSalesOrderDetail'、'P') は NOT NULL の DROP PROCEDURE dbo.CreateSalesOrderDetail;開始

CREATE PROCEDURE [dbo]: [CreateSalesOrderDetail] @ SalesOrderID int の @ CarrierTrackingNumber nvarchar(25)、@ OrderQty smallint、@ [商品コード] int、@ SpecialOfferID int、@ 単価金額、@ UnitPriceDiscount 資金 @ rowguid すれば、@ ModifiedDate datetime
   
AS

[AdventureWorks] に挿入します [Sales]。 [SalesOrderDetail] ([SalesOrderID]、[CarrierTrackingNumber]、[OrderQty]、[商品コード]、[SpecialOfferID]、[単価]、[UnitPriceDiscount]、[rowguid]、[ModifiedDate]) 値 (@ SalesOrderID、@ CarrierTrackingNumber、@ OrderQty、@ [商品コード]、@ SpecialOfferID、@ [単価]、@ UnitPriceDiscount、@ rowguid、@ ModifiedDate)。

SalesOrderDetailID、LineTotal [AdventureWorks] から選択します [Sales]。 [SalesOrderDetail] 場所 SalesOrderID = @ SalesOrderID および SalesOrderDetailID = scope_identity()。

UpdateSalesOrderDetail プロシージャ

次のスクリプト、ストアド プロシージャを更新するために使用を作成します。SalesOrderDetail 記憶域の項目。

使用して [AdventureWorks] GO SET ANSI_NULLS GO SET 引用符で囲まれた識別子に GO 場合 OBJECT_ID ('dbo.UpdateSalesOrderDetail'、'P') は NOT NULL の DROP PROCEDURE dbo.UpdateSalesOrderDetail;開始

CREATE PROCEDURE [dbo]: [UpdateSalesOrderDetail] @ OrderQty smallint、SalesOrderDetailID int、@ SalesOrderID int @

UPDATE [AdventureWorks] として [Sales]: [SalesOrderDetail] SET [OrderQty] = @ OrderQty WHERE SalesOrderDetailID = @ SalesOrderDetailID。

DeleteSalesOrderDetail プロシージャ

次のスクリプト、ストアド プロシージャを使用して削除を作成します。SalesOrderDetail 記憶域の項目。

使用して [AdventureWorks] GO SET ANSI_NULLS GO SET 引用符で囲まれた識別子に GO 場合 OBJECT_ID ('dbo.DeleteSalesOrderDetail'、'P') は NOT NULL の DROP PROCEDURE dbo.DeleteSalesOrderDetail;開始

CREATE PROCEDURE [dbo]. int [DeleteSalesOrderDetail] @ SalesOrderDetailID @ SalesOrderID int と削除から [AdventureWorks]. [Sales]: [SalesOrderDetail] WHERE SalesOrderDetailID = @ SalesOrderDetailID

スキーマ定義言語 (SSDL) を格納します。

記憶域スキーマで関数 要素は、ストアド プロシージャ、データベースで使用できるを定義します。入れ子になっています。パラメーター 割り当てられるストアド プロシージャのパラメーターの名前を要素に指定します。これらの宣言はストアド プロシージャをデータベースに存在してマッピングを指定しないが、Entity Framework を通知します。このトピックで後で示すようマッピングは、マッピング スキーマで実装されます。

IsComposable ストアド プロシージャを表す関数宣言の属性に設定しなければなりませんFalse の場合.がプロシージャによって返される結果に使用不可能このことを示します、から ほかのエンティティの SQL ステートメントの句を指定します。ストレージ スキーマで、次の宣言は次の 3 つのストアド プロシージャを指定します。CreateSalesOrderDetail, UpdateSalesOrderDetailandDeleteSalesOrderDetail.

        < 機能名 ="CreateSalesOrderDetail"集計 ="false"ビルトイン ="false"NiladicFunction ="false"IsComposable ="false"ParameterTypeSemantics ="AllowImplicitConversion"スキーマ"dbo"= >< パラメーター名 ="SalesOrderID"型 ="int"モード"で =/>< パラメーター名 ="CarrierTrackingNumber"型 ="nvarchar"モード"で =/>< パラメーター名 ="OrderQty"型 ="smallint"モード"で =/>< パラメーター名"[商品コード] =型 ="int"モード"で =/>< パラメーター名 ="SpecialOfferID"型 ="int"モード"で =/>< パラメーター名 =「単価」型 =「コスト」モード"で =/>< パラメーター名 ="UnitPriceDiscount"型 =「コスト」モード"で =/>< パラメーター名 ="rowguid"型 ="uniqueidentifier"モード"で =/>< パラメーター名 ="ModifiedDate"型 =「日付/時刻」モード"で =/></関数 >

< 機能名 ="UpdateSalesOrderDetail"集計 ="false"ビルトイン ="false"NiladicFunction ="false"IsComposable ="false"ParameterTypeSemantics ="AllowImplicitConversion"スキーマ"dbo"= >< パラメーター名 ="OrderQty"型 ="smallint"モード"で =/>< パラメーター名 ="SalesOrderDetailID"型 ="int"モード"で =/>< パラメーター名 ="SalesOrderID"型 ="int"モード"で =/></関数 >

< 機能名 ="DeleteSalesOrderDetail"集計 ="false"ビルトイン ="false"NiladicFunction ="false"IsComposable ="false"ParameterTypeSemantics ="AllowImplicitConversion"スキーマ"dbo"= >< パラメーター名 ="SalesOrderDetailID"型 ="int"モード"で =/>< パラメーター名 ="SalesOrderID"型 ="int"モード"で =/></関数 >

完全な記憶域、AdventureWorks 販売モデルのスキーマ、ストアド プロシージャを追加する前に存在するようについてください。AdventureWorks 売り上げ高の記憶域のスキーマ (EDM).

マッピングの指定言語 (MSL)

記憶域のスキーマとデータベースのストアド プロシージャで宣言された関数間のマッピングを定義する、マッピング仕様します。

下のEntityTypeMapping 要素のEntitySetMapping、、ModificationFunctionMapping 要素は、SSDL ファイル ハンドルで指定されたどの関数変更処理を示します。子要素が含まれますDeleteFunction, InsertFunctionandUpdateFunction.各関数のマッピングを指定しますFunctionName ストアド プロシージャが割り当てられます。

AssociationEnd 要素内で、EntityTypeMapping 参照、または、エンティティを別のエンティティに関連する関連付けの基になる外部キーとして、リレーションシップを扱うことができます。作成またはストアド プロシージャによって既存のエンティティ間の関連付けを削除する方法についてを参照してください。マッピングの関連付けをストアド プロシージャ (Entity Framework) を設定します.

  < ModificationFunctionMapping >< InsertFunction FunctionName="AdventureWorksModel.Store.CreateSalesOrderDetail">< ScalarProperty 名 ="CarrierTrackingNumber"ParameterName ="CarrierTrackingNumber"バージョン =「現在」と >< ScalarProperty 名 ="OrderQty"ParameterName ="OrderQty"バージョン =「現在」と >< ScalarProperty 名 =「商品コード」ParameterName"商品コード] =バージョン =「現在」と >< ScalarProperty 名 ="SpecialOfferID"ParameterName ="SpecialOfferID"バージョン =「現在」と >< ScalarProperty 名 =「単価」ParameterName =「単価」バージョン =「現在」と >< ScalarProperty 名 ="UnitPriceDiscount"ParameterName ="UnitPriceDiscount"バージョン =「現在」と >< ScalarProperty 名 ="rowguid"ParameterName ="rowguid"バージョン =「現在」と >< ScalarProperty 名 ="ModifiedDate"ParameterName ="ModifiedDate"バージョン =「現在」と >< AssociationEnd AssociationSet ="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID"="SalesOrderDetail"から="SalesOrderHeader"を >< ScalarProperty 名 ="SalesOrderID"ParameterName ="SalesOrderID"/></AssociationEnd >< ResultBinding ColumnName ="SalesOrderDetailID"名前 ="SalesOrderDetailID"/>< ResultBinding ColumnName ="LineTotal"名前 ="LineTotal"/></InsertFunction >

< UpdateFunction FunctionName="AdventureWorksModel.Store.UpdateSalesOrderDetail">< ScalarProperty 名 ="OrderQty"ParameterName ="OrderQty"バージョン =「現在」と >< ScalarProperty 名 ="SalesOrderDetailID"ParameterName ="SalesOrderDetailID"バージョン =「現在」と >< AssociationEnd AssociationSet ="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID"="SalesOrderDetail"から="SalesOrderHeader"を >< ScalarProperty 名 ="SalesOrderID"ParameterName ="SalesOrderID"バージョン =「現在」/></AssociationEnd ></UpdateFunction >

< DeleteFunction FunctionName="AdventureWorksModel.Store.DeleteSalesOrderDetail">< ScalarProperty 名 ="SalesOrderDetailID"ParameterName ="SalesOrderDetailID"バージョン =「元」と >< AssociationEnd AssociationSet ="FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID"="SalesOrderDetail"から="SalesOrderHeader"を >< ScalarProperty 名 ="SalesOrderID"ParameterName ="SalesOrderID"/></AssociationEnd ></DeleteFunction ></ModificationFunctionMapping >

ストアド プロシージャを追加する前に、AdventureWorks モデルのマッピング スキーマを確認するには、参照してください。マッピング スキーマ (EDM) AdventureWorks 売上.

オプティミスティック同時実行制御

バージョン 属性のScalarProperty 要素の使用をサポートしていますオプティミスティック同時実行制御 更新および削除のコントロール。指定することができます、バージョン いずれかの値を持つ属性、データベース、から読み込むとして最初または現在、クライアント コードで変更された可能性があります。バージョンを指定が必要、更新プログラム関数のマッピングです。バージョンを指定するは削除関数マッピングの省略可能です。挿入、オプティミスティック同時実行制御は不要、データ ソースに対してテストする元の値がないためです。

Setting theバージョン 属性は、オプティミスティック同時実行制御を実行するときにパラメーターとして古いと、新しい値を実行するストアド プロシージャをできます。データ ソースでも、アプリケーションが最後のデータ ソースから取得した同じ値を保持する場合にのみ、更新または削除が発生することを確認できます。

エンティティのプロパティの元のバージョンにバインドする入力のパラメーターはストアド プロシージャ内で UPDATE または DELETE ステートメントの WHERE 句で使用されます。更新プログラム、エンティティのプロパティの現在のバージョンにバインドされた追加のパラメーターはストアド プロシージャ内で UPDATE ステートメントの SET 句で使用されます。これは、確認を元の値のデータ ソースの値をまだと一致する場合にのみ、現在、新しい値は、データ ソースに割り当てられます。更新または削除は失敗別のユーザーまたは別のアプリケーションが変更されたデータ ソース内の値が元の値を取得するためします。

サーバーの値を取得します。

挿入と更新、追加の子要素ResultBinding、、結果セット内のサーバーで生成された値を返すをサポートします。ResultBinding 要素をどのように戻り値を指定しますエンティティのプロパティに対応し、概念モデルに基づくオブジェクトで値を設定するには、更新プログラム パイプラインを有効にします。

ResultBinding 要素が、[名前] 属性を参照先エンティティの定義のプロパティの名前であると、列名 属性、ストアド プロシージャによって返される結果セット列の名前であります。ResultBinding 要素は、次のスキーマ セグメントの示しています。

    < ResultBinding 名 ="SalesOrderDetailID"ColumnName ="SalesOrderDetailID"/>< ResultBinding 名 ="LineTotal"ColumnName ="LineTotal"/></InsertFunction >

ストアド プロシージャ コードで、使用して、SELECT ステートメントに渡された値を取得、INSERT または UPDATE ステートメントが実行後ResultBinding.

SELECT SalesOrderDetailID、LineTotal [AdventureWorks] から [Sales]: [SalesOrderDetail] WHERE SalesOrderID = @ SalesOrderID および SalesOrderDetailID scope_identity() =。

表示: