OnDelete 要素 (CSDL)

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

Cc716734.note(ja-jp,VS.100).gif注 :
OnDelete 要素が影響を及ぼすのは、アプリケーションの実行時の動作だけです。データ ソースでの動作には影響を及ぼしません。データ ソースで定義された動作は、アプリケーションで定義された動作と同じである必要があります。

An OnDelete element can have the following child elements (in the order listed):

適用可能な属性

The table below describes the attributes that can be applied to the OnDelete element.

属性名 必須 Value

Action

有効

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

Cc716734.note(ja-jp,VS.100).gif注 :
Association 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。However, custom attributes may not belong to any XML namespace that is reserved for CSDL.カスタム属性の完全修飾名は一意である必要があります。

The following example shows an Association element that defines the CustomerOrders association. 特定の Customer が削除されると、その Customer に関連付けられており ObjectContext に読み込まれている Orders もすべて削除されることが、OnDelete 要素によって示されています。

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

参照

概念

エンティティ フレームワークの概要
CSDL 仕様
Schema 要素 (CSDL)

その他のリソース

CSDL、SSDL、および MSL 仕様
ADO.NET Entity Data Model Tools