Share via


LINQ to Visual Studio での SQL ツール

 

公開日: 2016年4月

LINQ to SQL では、マイクロソフトによってリリースされた最初のオブジェクト リレーショナル マッピング テクノロジはでした。 これは、基本的なシナリオに適してはで、引き続き Visual Studio でサポートされるが不要になった開発します。 LINQ to SQL、既に使用しているレガシ アプリケーションを保守する際にまたはを SQL Server を使用して複数のテーブルのマッピングを必要としない単純なアプリケーションを使用します。 一般に、オブジェクト リレーショナル マッパー レイヤーが必要な場合は、新しいアプリケーションは Entity Framework を使用する必要があります。

Visual Studio で、作成 LINQ to SQL クラスを使用して SQL テーブルを表す、 O/R デザイナーです。

O/R デザイナー 、デザイン サーフェイスに 2 つの領域を持つ: エンティティ ペインで、左側と右側のメソッド ペインです。 エンティティ ペインは、エンティティ クラス、関連付け、および継承階層を表示するメインのデザイン サーフェイスです。 メソッド ペインは表示するデザイン サーフェイス、 DataContext ストアド プロシージャおよび関数にマップされるメソッドです。

Object Relational Designer (O/R デザイナー) を作成するためのビジュアル デ ザイン サーフェイスを提供 LINQ to SQL エンティティ クラスとデータベース内のオブジェクトに基づく関連付け (リレーションシップ) です。 つまり、O/R デザイナーは、データベース内のオブジェクトにマップされるオブジェクト モデルをアプリケーションに作成するために使用されます。 生成することも、厳密に型指定された DataContext エンティティ クラスとデータベース間でデータの送受信に使用されます。 O/R デザイナー にストアド プロシージャをマップする機能を提供し、関数を DataContext データを返し、エンティティ クラスを設定するためのメソッドです。 最後に、O/R デザイナーでは、エンティティ クラス間の継承関係をデザインすることもできます。

O/R デザイナーを開く

LINQ to SQL エンティティ モデルをプロジェクトに追加する プロジェクトと #124 文字です。新しい項目の追加 にして LINQ to SQL クラス プロジェクト項目の一覧から。

LINQ to SQL クラス

Visual Studio では、.dbml ファイルを作成し、ソリューションに追加します。 これは、XML マッピング ファイルとその関連するコード ファイルです。

LINQ to SQL クラスのソリューション エクスプ ローラー

.Dbml ファイルを選択すると、Visual Studio は視覚的にモデルを作成することができます、O/R デザイナー画面を表示します。 次の図は、サーバー エクスプ ローラーから、Northwind の Customers テーブルと Orders テーブルをドラッグした後に、デザイナーを示します。 テーブル間のリレーションシップに注意してください。

LINQ to SQL デザイナー

重要

O/R デザイナー 単純なオブジェクト リレーショナル マッパーは、1 対 1 のマッピング関係のみがサポートしているためです。 つまり、エンティティ クラスには、データベース テーブルまたはビューとの 1:1 のマッピング関係しか持たせることができません。 エンティティ クラスの結合テーブルへのマッピングなどの複雑なマッピングがサポートされていません。複雑なマッピングの Entity Framework を使用します。 また、デザイナーは一方向のコード ジェネレーターです。 つまり、デザイナー サーフェイスに加えた変更だけがコード ファイルに反映されます。 コード ファイルに手動で加えた変更は、O/R デザイナーに反映されません。 コード ファイルに手動で加えた変更は、デザイナーを保存してコードを再生成するときに上書きされます。 ユーザー コードを追加し、によって生成されたクラスを拡張する方法については、 O/R デザイナー, を参照してください 方法: 拡張、O/R デザイナーによって生成されたコードします。

DataContext の作成と構成

追加した後、 LINQ to SQL クラス 項目がプロジェクトに、開いている、 O/R デザイナー, 、空のデザイン サーフェイスを表す空 DataContext 構成できる状態にします。 DataContext デザイン サーフェイスにドラッグされる最初の項目によって提供される接続情報で構成されます. したがって、 DataContext デザイン サーフェイスにドロップされた最初の項目からの接続情報を使用して構成します。 詳細については、 DataContext クラスでは、「 DataContext メソッド (O/R デザイナー)します。

データベース テーブルおよびビューにマップされるエンティティ クラスの作成

データベース テーブルやビューをドラッグすることにより、テーブルとビューにマッピングされたエンティティ クラスを作成する サーバー エクスプ ローラー/データベース エクスプ ローラー 上に、 O/R デザイナーです。 前のセクションで示すとおり、 DataContext デザイン サーフェイスにドラッグされる最初の項目によって提供される接続情報で構成されます。 別の接続を使用する後続の項目を追加するかどうか、 O/R デザイナー, 、用の接続を変更することができます、 DataContextします。 詳細については、次を参照してください。 方法: LINQ to SQL クラスのテーブルとビュー (O/r デザイナー) にマップに作成します。

ストアド プロシージャおよび関数を呼び出す DataContext メソッドの作成

作成することができます DataContext メソッドを呼び出す (にマップされる) ストアド プロシージャおよび関数をドラッグしてから サーバー エクスプ ローラー/データベース エクスプ ローラー 上に、 O/R デザイナーです。 ストアド プロシージャおよび関数が追加されている場合に、 O/R デザイナー のメソッドとして、 DataContextします。

注意

ストアド プロシージャと関数をドラッグすると サーバー エクスプ ローラー/データベース エクスプ ローラー 上に、 O/R デザイナー, 、戻り値の型を生成された DataContext メソッドは、項目をドロップする場所によって異なります。 詳細については、次を参照してください。 DataContext メソッド (O/r デザイナー)します。

ストアド プロシージャを使用してエンティティ クラスとデータベース間でデータを保存するための DataContext の構成

前述のように、作成 DataContext ストアド プロシージャおよび関数を呼び出すメソッド。 また、挿入、更新、および削除を実行する既定の LINQ to SQL ランタイムの動作の代わりに使用できる、ストアド プロシージャを割り当てることもできます。 詳細については、次を参照してください。 方法: 更新、挿入、および削除 (O/r デザイナー) を実行するストアド プロシージャを割り当てるします。

継承と O/R デザイナー

LINQ to SQL クラスは、他のオブジェクトと同様に、継承を使用して他のクラスから派生できます。 データベースでは、継承関係が複数の方法で作成されます。 O/R デザイナーでは、多くのリレーショナル システムに実装されている単一テーブル継承の概念がサポートされています。 詳細については、次を参照してください。 方法: O/r デザイナーを使用して継承を構成するです。

LINQ to SQL クエリ

作成されるエンティティ クラス、 O/R デザイナー で使用できるように設計された LINQ (Language-Integrated Query)します。 詳細については、次を参照してください。 方法: 情報の照会します。

生成された DataContext とエンティティ クラス コードの異なる名前空間への分離

O/R デザイナー 提供、 Context NamespaceEntity Namespace プロパティを DataContextします。 これらのプロパティは、名前空間を調べる、 DataContext およびにエンティティ クラスのコードを生成します。 既定では、これらのプロパティは空と DataContext およびエンティティ クラスは、アプリケーションの名前空間に生成します。 アプリケーションの名前空間以外に、コードを生成するに値を入力してください、 Context NamespaceEntity Namespace プロパティです。

このセクションの内容

DataContext メソッド (O/R デザイナー)
何かについて説明 DataContext メソッドと作成方法について説明します。

データ クラスの継承 (O/R デザイナー)
単一テーブル継承の概念と、O/R デザイナーにおけるその実装方法について説明します。

方法: LINQ to SQL クラスのテーブルとビュー (O/R デザイナー) にマップを作成
データベース内のテーブルとビューにマップされるエンティティ クラスの作成方法について説明します。

方法: LINQ to SQL クラス (O/R デザイナー) の間の関連付け (リレーションシップ) の作成
LINQ to SQL エンティティ クラス間にリレーションシップを作成する方法について説明します。

方法: ストアド プロシージャおよび関数 (O/R デザイナー) にマップされる DataContext メソッドの作成
作成する方法について説明 DataContext メソッドが呼び出されると、ストアド プロシージャまたは関数を実行します。

方法: 更新、挿入、および削除 (O/R デザイナー) を実行するストアド プロシージャを割り当てる
構成する方法について説明する DataContext エンティティからデータを保存する場合は、ストアド プロシージャを使用するクラスは、データベースをバックアップします。

方法: DataContext メソッド (O/R デザイナー) の戻り値の型を変更します。
戻り値の型を設定する方法について説明、 DataContext 、エンティティ クラスの型または O/R デザイナーで作成された自動生成された型にするメソッドです。

方法: エンティティ クラスに検証を追加
プロパティの変更中およびエンティティ クラスの更新中にコードを追加できるようにする部分メソッドの生成方法について説明します。

方法: 複数形化のオンとオフ (O/R デザイナー)
O/R デザイナーに追加されるクラスの自動的な名前変更をオンまたはオフにする方法について説明します。

方法: O/R デザイナーを使用して継承を構成します。
O/R デザイナーで単一テーブル継承を使用してエンティティ クラスを構成する方法について説明します。

方法: O/R デザイナーによって生成されたコードを拡張します。
O/R デザイナー上でのオブジェクトの変更によってコードが再生成されても上書きされないコードの追加方法と、そのようなコードを追加する場所について説明します。

チュートリアル: 単一テーブル継承 (O/R デザイナー) を使用して LINQ to SQL クラスを作成します。
O/R デザイナーで単一テーブル継承を使用してエンティティ クラスを構成するための詳細な手順を示します。

チュートリアル: のカスタマイズ、挿入、更新、およびエンティティ クラスの動作を削除
構成する手順については、 DataContext エンティティからデータを保存する場合は、ストアド プロシージャを使用するクラスは、データベースをバックアップします。

リファレンス コンテンツ

System.Linq

System.Data.Linq

.NET 用の visual Studio データ ツール
よく寄せられる質問
LINQ to SQL
Visual Studio でのデータにアクセスします。