テーブルとビューにマップされた LINQ to SQL クラスを作成する (O/R デザイナー)
データベース テーブルおよびビューにマップされた LINQ to SQL クラスは、エンティティ クラスと呼ばれます。 エンティティ クラスはレコードにマップされますが、エンティティ クラスの個々のプロパティはレコードを構成する個々の列にマップされます。 データベース テーブルまたはビューに基づくエンティティ クラスを作成するには、サーバー エクスプローラーまたはデータベース エクスプローラーから Visual Studio の LINQ to SQL ツールにテーブルまたはビューをドラッグします。 O/R デザイナーによってクラスが生成され、LINQ to SQL 機能 (DataContext のデータ通信および編集機能) を有効にするために、特定の LINQ to SQL 属性が適用されます。 LINQ to SQL クラスの詳細については、「LINQ to SQL オブジェクト モデル」を参照して参照してください。
Note
O/R デザイナーは、1:1 のマッピング関係のみがサポートされる単純なオブジェクト リレーショナル マッパーです。 つまり、エンティティ クラスには、データベース テーブルまたはビューとの 1:1 のマッピング関係しか持たせることができません。 1 つのエンティティ クラスを複数のテーブルにマップするなど、複雑なマッピングはサポートされていません。 ただし、複数の関連テーブルを結合するビューにエンティティ クラスをマップすることはできます。
データベース テーブルまたはビューにマップされる LINQ to SQL クラスの作成
サーバー エクスプローラーまたはデータベース エクスプローラーから O/R デザイナーにテーブルまたはビューをドラッグすると、更新の実行に使用される DataContext のメソッドに加えて、エンティティ クラスが作成されます。
既定では、LINQ to SQL ランタイムによって、更新可能なエンティティ クラスの変更をデータベースに保存するロジックが作成されます。 このロジックは、テーブルのスキーマ (列定義と主キー情報) に基づいています。 この動作が不要な場合は、LINQ to SQL ランタイムの既定の動作を使用するのではなく、ストアド プロシージャを使用して挿入、更新、削除を実行するようにエンティティ クラスを構成できます。 詳細については、「方法:更新、挿入、および削除を実行するストアド プロシージャを割り当てる (O/R デザイナー)」を参照してください。
Note
この記事で紹介する Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 Visual Studio のエディションや環境設定がお使いのものと異なる場合があります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。
データベース テーブルまたはビューにマップされる LINQ to SQL クラスを作成するには
サーバー エクスプローラーまたはデータベース エクスプローラーで、[テーブル] または [ビュー] を展開し、アプリケーションで使用するデータベース テーブルまたはビューを探します。
テーブルまたはビューを O/R デザイナーにドラッグします。
エンティティ クラスが作成され、デザイン サーフェイスに表示されます。 このエンティティ クラスには、選択されたテーブルまたはビューの列にマップされるプロパティが含まれています。
オブジェクト データ ソースの作成とフォームへのデータの表示
O/R デザイナーを使用してエンティティ クラスを作成したら、オブジェクト データ ソースを作成し、[データ ソース] ウィンドウにエンティティ クラスを読み込むことができます。
LINQ to SQL エンティティ クラスに基づいてオブジェクト データ ソースを作成するには
[ビルド] メニューの [ソリューションのビルド] をクリックしてプロジェクトをビルドします。
[データ ソース] ウィンドウを開くには、 [データ] メニューの [データ ソースの表示] をクリックします。
[データ ソース] ウィンドウで、 [新しいデータ ソースの追加]をクリックします。
[データ ソースの種類を選択] ページで [オブジェクト] を選択してから、[次へ] を選択します。
ノードを展開し、クラスを探して選択します。
Note
Customer クラスが使用可能でない場合は、ウィザードをキャンセルし、プロジェクトをビルドしてからウィザードを再実行します。
[完了] をクリックしてデータ ソースを作成し、Customer エンティティ クラスを [データ ソース] ウィンドウに追加します。
[データ ソース] ウィンドウからフォームに項目をドラッグします。