次の方法で共有


テーブルとビューにマップされた LINQ to SQL クラスを作成する (O/R デザイナー)

データベース テーブルとビューにマップされる LINQ to SQL クラスは、 エンティティ クラスと呼ばれます。 エンティティ クラスはレコードにマップされますが、エンティティ クラスの個々のプロパティは、レコードを構成する個々の列にマップされます。 サーバー エクスプローラーまたはデータベース エクスプローラーから Visual Studio の LINQ to SQL ツールにテーブルまたはビューをドラッグして、データベース テーブルまたはビューに基づくエンティティ クラスを作成します。 O/R デザイナーはクラスを生成し、特定の LINQ to SQL 属性を適用して LINQ to SQL 機能 (DataContextのデータ通信および編集機能) を有効にします。 LINQ to SQL クラスの詳細については、 LINQ to SQL オブジェクト モデルを参照してください。

O/R デザイナー は、1 対 1 のマッピング リレーションシップのみをサポートしているため、単純なオブジェクト リレーショナル マッパーです。 つまり、エンティティ クラスは、データベース テーブルまたはビューとの 1 対 1 のマッピング リレーションシップのみを持つことができます。 エンティティ クラスを複数のテーブルにマッピングするなど、複雑なマッピングはサポートされていません。 ただし、エンティティ クラスを、複数の関連テーブルを結合するビューにマップできます。

データベース テーブルまたはビューにマップされる LINQ to SQL クラスを作成する

サーバー エクスプローラーまたはデータベース エクスプローラーから O/R デザイナーにテーブルまたはビューをドラッグすると、更新の実行に使用されるDataContextメソッドに加えてエンティティ クラスが作成されます。

既定では、LINQ to SQL ランタイムは、更新可能なエンティティ クラスからの変更をデータベースに保存するロジックを作成します。 このロジックは、テーブルのスキーマ (列定義と主キー情報) に基づいています。 この動作が不要な場合は、既定の LINQ to SQL ランタイム動作を使用する代わりに、ストアド プロシージャを使用して挿入、更新、および削除を実行するようにエンティティ クラスを構成できます。 詳細については、「方法: ストアド プロシージャを割り当てて更新、挿入、および削除を実行する (O/R デザイナー)を参照してください。

この記事の手順では、Visual Studio で使用できる対話型開発エクスペリエンス (IDE) の最新バージョンについて説明します。 コンピューターには、一部のユーザー インターフェイス要素に対して異なる名前または場所が表示される場合があります。 別のバージョンの Visual Studio または異なる環境設定を使用している可能性があります。 詳細については、「IDEのカスタマイズ」を参照してください。

データベース テーブルまたはビューにマップされる LINQ to SQL クラスを作成するには

  1. サーバーまたはデータベース エクスプローラーで、[テーブル] または [ビュー] を展開し、アプリケーションで使用するデータベース テーブルまたはビューを見つけます。

  2. テーブルまたはビューを O/R デザイナーにドラッグします。

    エンティティ クラスが作成され、デザイン 画面に表示されます。 エンティティ クラスには、選択したテーブルまたはビューの列にマップされるプロパティがあります。

オブジェクト データ ソースを作成し、フォームにデータを表示する

O/R デザイナーを使用してエンティティ クラスを作成した後、オブジェクト データ ソースを作成し、[データ ソース] ウィンドウにエンティティ クラスを設定できます。

LINQ to SQL エンティティ クラスに基づいてオブジェクト データ ソースを作成するには

  1. [ ビルド ] メニューの [ ソリューションのビルド ] をクリックして、プロジェクトをビルドします。

  2. [ データ ソース ] ウィンドウを開くには、[ データ ] メニューの [ データ ソースの表示] をクリックします。

  3. [データ ソース] ウィンドウで、 [新しいデータ ソースの追加]をクリックします。

  4. [データ ソースの種類の選択] ページで [オブジェクト] をクリックし、[次へ] を選択します。

  5. ノードを展開し、クラスを見つけて選択します。

    Customer クラスを使用できない場合は、ウィザードから取り消し、プロジェクトをビルドして、ウィザードをもう一度実行します。

  6. [完了] をクリックしてデータ ソースを作成し、[データ ソース] ウィンドウにCustomer エンティティ クラスを追加します。

  7. [ データ ソース] ウィンドウからフォームに項目をドラッグします。