次の方法で共有


Data Class Inheritance (O/R Designer)

 

公開日: 2016年4月

LINQ to SQL クラスは、他のオブジェクトと同様に、継承を使用して他のクラスから派生できます。コードでは、あるクラスが別のクラスから継承されていることを宣言することによって、オブジェクト間の継承関係を指定できます。データベースでは、継承関係が複数の方法で作成されます。Object Relational Designer (O/R デザイナー) では、一般にリレーショナル システムで実装されている単一テーブル継承の概念がサポートされます。

単一テーブル継承では、基本クラスと派生クラスの両方の列が入った単一データベース テーブルが関係します。リレーショナル データでは、識別子の列に、特定のレコードが属するクラスを決定する値が含まれます。たとえば、会社に採用されたすべての人を含む Persons テーブルについて考えます。従業員である人もいれば、管理者である人もいます。Persons テーブルには、Type という列があり、この列の値は管理者は 1、従業員は 2 です。Type 列は識別子の列です。このシナリオでは、従業員のサブクラスを作成して、そのクラスには Type の値が 2 であるレコードだけを入れるようにすることができます。

O/R デザイナー を使用してエンティティ クラスでの継承を設定する場合、継承データを含んだ単一テーブルをデザイナーに、継承階層のクラスごとに 1 回、計 2 回ドラッグします。デザイナーにテーブルを追加した後、[オブジェクト リレーショナル デザイナー] ツールボックスでそれらのテーブルを継承項目に接続して、[プロパティ] ウィンドウで 4 つの継承プロパティを設定します。

継承プロパティ

継承プロパティとその説明については、次の表を参照してください。

プロパティ 説明
識別子プロパティ 現在のレコードが属するクラスを判別するプロパティ (列にマップされる)。
基本クラスの識別子の値 レコードが基本クラスに属することを決定する、識別子プロパティとして指定された列の値。
派生クラスの識別子の値 レコードが派生クラスに属することを決定する、識別子プロパティとして指定されたプロパティの値。
継承の既定値 [識別子プロパティ] プロパティの値が [基本クラスの識別子の値] または [派生クラスの識別子の値] のいずれとも一致しない場合に使用されるクラス。

継承を使用し、リレーショナル データに対応するオブジェクト モデルの作成は、混乱しやすい場合があります。このトピックでは、継承を構成する場合に必要な基本的な概念と個々のプロパティについて説明します。O/R デザイナー による継承の構成方法についての詳しい説明については、以下のトピックを参照してください。

トピック 説明
How to: Configure Inheritance by Using the O/R Designer O/R デザイナーを使用して単一テーブル継承を使用するエンティティ クラスを構成する方法について説明します。
Walkthrough: Creating LINQ to SQL Classes by Using Single-Table Inheritance (O/R Designer) O/R デザイナーを使用して単一テーブル継承を使用するエンティティ クラスを構成するための詳細な手順を説明します。

参照

O/R Designer Overview
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
Walkthrough: Creating LINQ to SQL Classes by Using Single-Table Inheritance (O/R Designer)
Getting Started