方法: アソシエーションを作成および変更する (Entity Data Model ツール)
アソシエーションは、概念モデルのエンティティ型の間のリレーションシップを定義します。 アソシエーションに参加できるエンティティ型は 2 つだけで、アソシエーションに参加している各エンティティ型は End と呼ばれます。 エンティティ型の間には複数のアソシエーションが存在できます。 アソシエーションは、デザイン画面に、2 つのエンティティ型をつなぐ線として表されます。 詳細については、「Defining and Managing Relationships」を参照してください。
アソシエーションの作成
エンティティ デザイナーでアソシエーションを作成すると、.edmx ファイルの概念モデル コンテンツが更新されます。 .edmx ファイルの内容の詳細については、「.edmx ファイルの概要 (Entity Framework)」を参照してください。 アソシエーションを作成した後、アソシエーションのマッピングを作成する必要があります。 詳細については、「方法: アソシエーションのマッピングを作成および編集する (Entity Data Model ツール)」を参照してください。
[アソシエーションの追加] ダイアログ ボックスを使用してアソシエーションを作成するには
デザイン画面の空の領域を右クリックし、[追加] をポイントして、[アソシエーション] をクリックします。
[アソシエーションの追加] ダイアログ ボックスが表示されます。
アソシエーションの設定を入力します。
注 : アソシエーションの End にあるエンティティにナビゲーション プロパティや外部キー プロパティを追加しない場合は、[ナビゲーション プロパティ] および [<エンティティ型名> エンティティへの外部キー プロパティの追加] チェックボックスをオフにします。ナビゲーション プロパティを 1 つだけ追加する場合、アソシエーションの検査は一方向のみ可能になります。ナビゲーション プロパティを追加しない場合、アソシエーションの End にあるエンティティにアクセスするには、外部キー プロパティを追加する必要があります。多対多 (*:*) および 1 対 1 (1:1) のアソシエーションでは、外部キーをエンティティに追加できません。詳細については、「Defining and Managing Relationships」を参照してください。 [OK] をクリックします。
ツールボックスを使用してアソシエーションを作成するには
ツールボックスの [アソシエーション] コントロールをクリックします。
デザイン画面でエンティティをクリックし、デザイン画面でもう 1 つのエンティティをクリックすることによって、アソシエーションに含めるエンティティを選択します。
[新しいアソシエーション] ダイアログ ボックスが表示されます。
アソシエーションの設定を入力します。
新しいアソシエーションの名前を指定します。
各エンティティの多重度を選択します。
各エンティティのナビゲーション プロパティの名前を指定します。
[OK] をクリックします。
注 : |
---|
ツールボックスでアソシエーションを追加すると、アソシエーションの End のエンティティ型にナビゲーション プロパティが自動的に追加されます。外部キー プロパティはエンティティ型に追加されません。詳細については、「方法: ナビゲーション プロパティを編集および削除する (Entity Data Model ツール)」および「Defining and Managing Relationships」を参照してください。 |
アソシエーションの削除
以下の手順でアソシエーションを削除した場合は、概念モデルからアソシエーションが削除されるだけです。 ストレージ モデルから対応するアソシエーションを削除するには、「方法: ストレージ モデルからオブジェクトを削除する (Entity Data Model ツール)」を参照してください。
アソシエーションを削除するには
エンティティ デザイナー画面でアソシエーションを右クリックして [削除] をクリックします。
または
1 つまたは複数のアソシエーションをクリックし、Del キーを押します。
参照
リファレンス
[マップされないテーブルおよびビューの削除] ダイアログ ボックス (Entity Data Model デザイナー)
概念
ADO.NET Entity Data Model デザイナー
その他のリソース
Entity Data Model ツールのタスク
Association Element (CSDL)
ReferentialConstraint Element (CSDL)