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