次の方法で共有


OnDelete 要素 (CSDL)

概念スキーマ定義言語 (CSDL) の OnDelete 要素は、アソシエーションと関係のある動作を定義します。Action 属性が、アソシエーションの一方の End で Cascade に設定されている場合、その End にあるエンティティ型が削除されると、アソシエーションの他方の End で関連付けられているエンティティ型も削除されます。2 つのエンティティ型間のアソシエーションが主キーと主キーのリレーションシップである場合、アソシエーションの他方の End にあるプリンシパル オブジェクトが削除されると、OnDelete の指定にかかわらず、読み込まれた依存オブジェクトも削除されます。詳細については、「リレーションシップの定義と管理」を参照してください。削除されるのは、ObjectContext に読み込まれた関連付けられているエンティティ型だけです。

注意

OnDelete 要素が影響を及ぼすのは、アプリケーションの実行時の動作だけです。データ ソースでの動作には影響を及ぼしません。データ ソースで定義された動作は、アプリケーションで定義された動作と同じである必要があります。

OnDelete 要素には、ここに示した順序で次の子要素を含めることができます。

適用可能な属性

OnDelete 要素に適用できる属性を次の表に示します。

属性名

必須

Action

はい

Cascade または None。Cascade の場合、プリンシパル エンティティ型が削除されると、依存エンティティ型も削除されます。None の場合、プリンシパル エンティティ型が削除されても、依存エンティティ型は削除されません。

注意

Association 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は CSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。

次の例では、CustomerOrders アソシエーションを定義する Association 要素を示します。特定の Customer が削除されると、その Customer に関連付けられており ObjectContext に読み込まれている Orders もすべて削除されることが、OnDelete 要素によって示されています。

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1">
        <OnDelete Action="Cascade" />
  </End>
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*" />
</Association>

関連項目

概念

エンティティ フレームワークの概要

CSDL 仕様

Schema 要素 (CSDL)

その他の技術情報

CSDL、SSDL、および MSL 仕様

ADO.NET Entity Data Model ツール