LINQ to SQL クラス間の関連付けを作成する (O/R デザイナー)
LINQ to SQL のエンティティ クラス間の関連付けは、データベース内のテーブル間の関連付けに似ています。 [関連付けエディター] ダイアログ ボックスを使用することで、エンティティ クラス間の関連付けを作成できます。
[関連付けエディター] ダイアログ ボックスを使用して関連付けを作成するときは、親クラスと子クラスを選択する必要があります。 親クラスは、主キーを含むエンティティ クラスであり、子クラスは、外部キーを含むエンティティ クラスです。 たとえば、Northwind Customers
テーブルと Orders
テーブルにマップされるエンティティ クラスが作成された場合は、Customer
クラスが親クラスであり、Order
クラスが子クラスです。
Note
サーバー エクスプローラーまたはデータベース エクスプローラーから オブジェクト リレーショナル デザイナー (O/R デザイナー) にテーブルをドラッグすると、データベース内の既存の外部キー リレーションシップに基づいて関連付けが自動的に作成されます。
関連付けのプロパティ
関連付けの作成後、O/R デザイナーで関連付けを選択すると、[プロパティ] ウィンドウにいくつかの構成可能なプロパティが表示されます。 (関連付けは、関連クラス間の線で表されます。) 次の表は、関連付けのプロパティの説明を示しています。
プロパティ | 説明 |
---|---|
カーディナリティ | 関連付けが 1 対多と 1 対 1 のどちらであるかを制御します。 |
子プロパティ | コレクションのプロパティを親に作成するか、子レコードへの参照を関連付けの外部キー側に作成するかを指定します。 たとえば、Customer と Order 間の関連付けでは、子プロパティ が True に設定され、Orders という名前のプロパティが親クラスに作成されます。 |
Parent プロパティ | 関連付けられている親クラスを参照する子クラスのプロパティです。 たとえば、Customer と Order の間の関連付けでは、注文に関連付けられている顧客を参照する Customer という名前のプロパティが Order クラスに作成されます。 |
関与のプロパティ | 関連付けのプロパティを表示し、[関連付けエディター] ダイアログ ボックスを再び開く 省略記号 ボタン (...) が用意されています。 |
[一意] | 外部ターゲット列に一意性の制約があるかどうかを示します。 |
エンティティ クラス間に関連付けを作成するには
関連付けの親クラスを表すエンティティ クラスを右クリックし、[追加] をポイントして、[関連付け] を選択します。
[関連付けエディター] ダイアログ ボックスで、正しい親クラスが選択されていることを確認します。
コンボ ボックスで子クラスを選択します。
クラスに関連する [関連付けのプロパティ] を選択します。 通常、これはデータベースで定義されている外部キー リレーションシップにマップされます。 たとえば、
Customers
とOrders
の関連付けでは、[関連付けのプロパティ] は各クラスのCustomerID
になります。[OK] をクリックして、関連付けを作成します。