次の方法で共有


How to: Create an Association (Relationship) Between LINQ to SQL Classes (O/R Designer)

 

公開日: 2016年4月

LINQ to SQL のエンティティ クラス間の関連付けは、データベース内のテーブル間の関連付けに似ています。[関連付けエディター] ダイアログ ボックスを使用することで、エンティティ クラス間の関連付けを作成できます。

[関連付けエディター] ダイアログ ボックスを使用して関連付けを作成するときは、親クラスと子クラスを選択する必要があります。親クラスは、主キーを含むエンティティ クラスであり、子クラスは、外部キーを含むエンティティ クラスです。たとえば、Northwind の Customers テーブルと Orders テーブルにマップされるエンティティ クラスが作成された場合は、Customer クラスが親クラスであり、Order クラスが子クラスです。

注意

サーバー エクスプローラーまたはデータベース エクスプローラーからObject Relational Designer (O/R デザイナー) にテーブルをドラッグすると、データベース内の既存の外部キー リレーションシップに基づいて関連付けが自動的に作成されます。

関連付けの作成後、O/R デザイナーで関連付けを選択すると、[プロパティ] ウィンドウにいくつかの構成可能なプロパティが表示されます。関連付けは、関連クラス間の線で表されます。次の表は、関連付けのプロパティの説明を示しています。

プロパティ 説明
カーディナリティ 関連付けが 1 対多と 1 対 1 のどちらであるかを制御します。
子プロパティ コレクションのプロパティを親に作成するか、子レコードへの参照を関連付けの外部キー側に作成するかを指定します。たとえば、Customer と Order 間の関連付けでは、"子プロパティ"True に設定され、Orders という名前のプロパティが親クラスに作成されます。
親プロパティ 関連付けられている親クラスを参照する子クラスのプロパティです。たとえば、Customer と Order の間の関連付けでは、注文に関連付けられている顧客を参照する Customer という名前のプロパティが Order クラスに作成されます。
関与のプロパティ 関連付けのプロパティを表示し、[関連付けエディター] ダイアログ ボックスを再び開く省略記号ボタン (...) が用意されています。
ユニーク 外部ターゲット列に一意性の制約があるかどうかを示します。

エンティティ クラス間に関連付けを作成するには

  1. 関連付けの親クラスを表すエンティティ クラスを右クリックし、[追加] をポイントして、[関連付け] をクリックします。

  2. [関連付けエディター] ダイアログ ボックスで、正しい親クラスが選択されていることを確認します。

  3. コンボ ボックスで子クラスを選択します。

  4. クラスに関連する [関連付けのプロパティ] を選択します。通常、これはデータベースで定義されている外部キー リレーションシップにマップされます。たとえば、Customers と Orders の関連付けでは、[関連付けのプロパティ] は各クラスの CustomerID になります。

  5. [OK] をクリックして、関連付けを作成します。

参照

O/R Designer Overview
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
LINQ to SQL
DataContext Methods (O/R Designer)
How to: Represent Primary Keys