典型的な LINQ to SQL の使用手順
更新 : November 2007
LINQ to SQL アプリケーションを実装するには、このトピックで説明する手順に従います。多くの手順は省略できます。既定の状態でオブジェクト モデルを使用することもできます。
オブジェクト リレーショナル デザイナを使用してオブジェクト モデルを作成し、クエリのコーディングを開始すると非常に簡単です。詳細についてはオブジェクト リレーショナル デザイナ (O/R デザイナ) およびオブジェクト リレーショナル デザイナー (O/R デザイナー) およびオブジェクト リレーショナル デザイナー (O/R デザイナー)を参照してください。
オブジェクト モデルの作成
最初に、既存のリレーショナル データベースのメタデータからオブジェクト モデルを作成します。オブジェクト モデルは、開発者のプログラミング言語に従ってデータベースを表します。詳細については、「LINQ to SQL オブジェクト モデル」を参照してください。
1. モデルを作成するツールを選択します。
モデルを作成するツールとして、3 つのツールを使用できます。
オブジェクト リレーショナル デザイナ
このデザイナは、既存のデータベースからモデルを作成する多機能なユーザー インターフェイスを備えています。このツールは Visual Studio IDE の一部であり、小規模または中規模のデータベースに最適です。詳細についてはオブジェクト リレーショナル デザイナ (O/R デザイナ) およびオブジェクト リレーショナル デザイナー (O/R デザイナー) およびオブジェクト リレーショナル デザイナー (O/R デザイナー)を参照してください。
SQLMetal コード生成ツール
このコマンド ライン ユーティリティは、O/R デザイナと多少異なるオプション セットを備えています。このツールは、大規模なデータベースのモデル化に適しています。詳細については、「コード生成ツール (SqlMetal.exe)」を参照してください。
コード エディタ
Visual Studio コード エディタまたは他のエディタを使用して、独自のコードを作成できます。既存のデータベースがあり、O/R デザイナまたは SQLMetal ツールを使用できる場合は、この方法はエラーを発生する可能性が高いため、その使用はお勧めできません。ただし、コード エディタは、他のツールを使用して既に生成されたコードを調整または変更する場合に役立ちます。詳細については、「方法 : コード エディタを使用してエンティティ クラスをカスタマイズする (LINQ to SQL)」を参照してください。
2. 生成するコードの種類を選択します。
属性ベースの対応付け用の C# または Visual Basic ソース コード。
このコード ファイルを、Visual Studio プロジェクトに含めます。詳細については、「属性ベースの対応付け (LINQ to SQL)」を参照してください。
外部マッピング用の XML ファイル。
この方法を使用すると、アプリケーション コードとは別にマッピング メタデータを保持できます。詳細については、「外部マッピング参照 (LINQ to SQL)」を参照してください。
メモ : O/R デザイナは、外部マッピング ファイルの生成をサポートしていません。SQLMetal ツールを使用してこの機能を実装する必要があります。
最終コード ファイルを生成する前に変更できる DBML ファイル。
これは高度な機能です。
3. コード ファイルを調整して、アプリケーションのニーズを反映します。
この目的で、O/R デザイナまたはコード エディタを使用できます。
オブジェクト モデルの使用
2 層シナリオでの開発者とデータの関係を次の図に示します。その他のシナリオについては、「LINQ to SQL を使用する n 層アプリケーションとリモート アプリケーション」を参照してください。
オブジェクト モデルが完成したので、そのモデル内で情報要求を記述し、データを操作します。オブジェクト モデルのオブジェクトとプロパティを使用し、データベースの行と列は使用しません。データベースを直接操作することはありません。
LINQ to SQL に対して、記述したクエリの実行、または操作したデータに対する SubmitChanges() の呼び出しを指示すると、LINQ to SQL は、データベースの言語でデータベースと通信します。
作成したオブジェクト モデルの典型的な使用手順を次に示します。
1. クエリを作成し、データベースから情報を取得します。
詳細については、「LINQ to SQL のクエリの概念」および「クエリの例 (LINQ to SQL)」を参照してください。
2. 挿入、更新、および削除の既定の動作をオーバーライドします。
この手順は省略できます。詳細については、「挿入、更新、および削除の各操作のカスタマイズ (LINQ to SQL)」を参照してください。
3. 適切なオプションを設定し、同時実行の競合を検出およびレポートします。
同時実行の競合の処理について、モデルの既定値をそのまま使用することも、目的に合わせて変更することもできます。詳細については、「方法 : 同時実行の競合を検査するメンバを指定する (LINQ to SQL)」および「方法 : 同時実行例外をいつスローするかを指定する (LINQ to SQL)」を参照してください。
4. 継承階層を確立します。
この手順は省略できます。詳細については、「継承のサポート (LINQ to SQL)」を参照してください。
5. 適切なユーザー インターフェイスを提供します。
この手順は省略できます。アプリケーションの使用方法に依存します。詳細についてはオブジェクト リレーショナル デザイナ (O/R デザイナ) およびオブジェクト リレーショナル デザイナー (O/R デザイナー) およびオブジェクト リレーショナル デザイナー (O/R デザイナー)を参照してください。
6. アプリケーションをデバッグおよびテストします。
詳細については、「デバッグのサポート (LINQ to SQL)」を参照してください。