TableAdapterManager の概要
更新 : 2007 年 11 月
TableAdapterManager は、既存のデータ機能 (型指定されたデータセットと TableAdapter) で構築される Visual Studio 2008 の新しいコンポーネントで、関連するデータ テーブルのデータを保存する機能を提供します。TableAdapterManager では、データ テーブルを関連付ける外部キー リレーションシップを使用することにより、データベースでの外部キー制約 (参照整合性) に違反せずに、データセットからデータベースに挿入コマンド、更新コマンド、削除コマンドを送信する正しい順序が決定されます。
外部キー制約とは、関連レコードの挿入、更新、および削除を制御するデータベース内の一貫性規則のことです。別のテーブルの子レコードが存在している間、その元となる親レコードが削除されないようにするのが外部キー制約です。
TableAdapterManager を使用して関連するデータ テーブルのデータを保存するプロセス全体は、階層更新と呼ばれます。
関連するデータ テーブルの変更されたデータを保存することは、1 つのテーブルのデータの保存より若干複雑です。これは、関連する各テーブルの挿入コマンド、更新コマンド、削除コマンドを、データベースで定義された外部キー制約に違反しないように、特定の順序で実行する必要があるためです。たとえば、新しい顧客と注文、および既存の顧客と注文の両方を管理できる注文入力アプリケーションがあるとします。既存の顧客のレコードを削除する必要がある場合、まずその顧客の注文をすべて削除しておく必要があります。また、新しい顧客のレコードを注文と共に追加する場合は、テーブルに適用される外部キー制約があるため、新しい顧客のレコードを挿入してから、その顧客の注文を挿入する必要があります。これらの例が示すように、データの特定のサブセットを抽出し、正しい順序で更新 (挿入、更新、削除) を送信することにより、参照整合性を維持し、データベースの外部キー制約と競合しないようにする必要があります。
TableAdapterManager の作成
既定では、TableAdapterManager クラスは、プロジェクトで型指定されたデータセットを作成すると生成されます。具体的には、これは、TableAdapterManager を作成するかどうかを決定する、データセットの Hierarchical Update プロパティの値です。Hierarchical Update が True に設定されている場合、TableAdapterManager が作成されます。Hierarchical Update が False に設定されている場合、TableAdapterManager が含まれないデータセットが作成されます。詳細については、「方法 : 階層更新を有効または無効にする」を参照してください。
メモ : |
---|
既定では、以前のバージョンの Visual Studio で作成されたプロジェクトに追加されたデータセットでは、Hierarchical Update プロパティが False に設定されています。これは、階層更新が無効になっており、TableAdapterManager が作成されないことを意味しています。既存のデータセットに TableAdapterManager を追加する方法の詳細については、「方法 : 既存の Visual Studio プロジェクトで階層更新を実装する」を参照してください。 |
TableAdapterManager のリファレンス
TableAdapterManager クラスは、.NET Framework の一部ではありません。そのため、ドキュメントで調べることはできません。これは、デザイン時にデータセット作成プロセスの一部として作成されます。
TableAdapterManager クラスのよく使用するメソッドとプロパティを次に示します。
メンバ |
説明 |
---|---|
UpdateAll メソッド |
すべてのデータ テーブルのすべてのデータを保存します。 |
BackUpDataSetBeforeUpdate プロパティ |
ブール値。TableAdapterManager.UpdateAll メソッドを実行する前に、データセットのバックアップ コピーを作成するかどうかを決定します。 |
tableNameTableAdapter プロパティ |
TableAdapter を表します。生成される TableAdapterManager には、管理する各 TableAdapter のプロパティが含まれます。たとえば、Customers テーブルと Orders テーブルが存在するデータセットは、CustomersTableAdapter プロパティと OrdersTableAdapter プロパティを含む TableAdapterManager によって生成されます。 |
UpdateOrder プロパティ |
個々の挿入コマンド、更新コマンド、削除コマンドの実行順序を制御します。TableAdapterManager.UpdateOrderOption 列挙型の値のいずれかに設定します。 既定では、UpdateOrder は InsertUpdateDelete に設定されます。これは、データセットのすべてのテーブルに対して挿入が実行され、次にデータセットのすべてのテーブルに対して更新が実行され、最後にデータセットのすべてのテーブルに対して削除が実行されることを意味しています。詳細については、「方法 : 階層更新の実行順序を設定する」を参照してください。 |
参照
処理手順
チュートリアル : 関連するデータ テーブルからのデータの保存 (階層更新)