データ クラスの継承 (O/R デザイナ)
更新 : November 2007
LINQ to SQL クラスは、他のオブジェクトと同様に、継承を使用して他のクラスから派生できます。コードでは、あるクラスが別のクラスから継承されていることを宣言することによって、オブジェクト間の継承関係を指定できます。データベースでは、継承関係が複数の方法で作成されます。オブジェクト リレーショナル デザイナ (O/R デザイナ) では、一般にリレーショナル システムで実装されている単一テーブル継承の概念がサポートされます。
単一テーブル継承では、基本クラスと派生クラスの両方の列が入った単一データベース テーブルが関係します。リレーショナル データでは、識別子の列に、特定のレコードが属するクラスを決定する値が含まれます。たとえば、会社に採用されたすべての人を含む Persons テーブルについて考えます。従業員である人もいれば、管理者である人もいます。Persons テーブルには、Type という列があり、この列の値は管理者は 1、従業員は 2 です。Type 列は識別子の列です。このシナリオでは、従業員のサブクラスを作成して、そのクラスには Type の値が 2 であるレコードだけを入れるようにすることができます。
O/R デザイナ を使用してエンティティ クラスでの継承を設定する場合、継承データを含んだ単一テーブルをデザイナに、継承階層のクラスごとに 1 回、計 2 回ドラッグします。デザイナにテーブルを追加した後、[オブジェクト リレーショナル デザイナ] ツールボックスでそれらのテーブルを継承項目に接続して、[プロパティ] ウィンドウで 4 つの継承プロパティを設定します。
継承プロパティ
継承プロパティとその説明については、次の表を参照してください。
プロパティ |
説明 |
---|---|
識別子プロパティ |
現在のレコードが属するクラスを判別するプロパティ (列にマップされる)。 |
基本クラスの識別子の値 |
レコードが基本クラスに属することを決定する、識別子プロパティとして指定された列の値。 |
派生クラスの識別子の値 |
レコードが派生クラスに属することを決定する、識別子プロパティとして指定されたプロパティの値。 |
継承の既定値 |
[識別子プロパティ] プロパティの値が [基本クラスの識別子の値] または [派生クラスの識別子の値] のいずれとも一致しない場合に使用されるクラス。 |
継承を使用し、リレーショナル データに対応するオブジェクト モデルの作成は、混乱しやすい場合があります。このトピックでは、継承を構成する場合に必要な基本的な概念と個々のプロパティについて説明します。O/R デザイナ による継承の構成方法についての詳しい説明については、以下のトピックを参照してください。
トピック |
説明 |
---|---|
O/R デザイナを使用して単一テーブル継承を使用するエンティティ クラスを構成する方法について説明します。 |
|
O/R デザイナを使用して単一テーブル継承を使用するエンティティ クラスを構成するための詳細な手順を説明します。 |
参照
処理手順
チュートリアル : LINQ to SQL クラスの作成 (O/R デザイナ)
チュートリアル : 単一テーブル継承を使用した LINQ to SQL クラスの作成 (O/R デザイナ)