ADO.NET データセット
DataSet オブジェクトは、ADO.NET で非接続型分散データ シナリオをサポートするうえで中心的な役割を果たします。 DataSet はメモリ内に常駐するデータ表現であり、データ ソースの違いにかかわらず、一貫性のあるリレーショナル プログラミング モデルを提供します。 複数の異なるデータ ソースや XML データと組み合わせて使用でき、アプリケーションにとってローカルなデータの管理にも使用できます。 DataSet では、関連テーブル、制約、およびテーブル間のリレーションシップを含む、完全なデータ セットが表されます。 次の図は、DataSet オブジェクト モデルを示したものです。
DataSet オブジェクト モデル
1 つの DataSet に含まれるメソッドとオブジェクトは、リレーショナル データベース モデルに含まれるメソッドやオブジェクトと整合性があります。
DataSet では、その内容を XML として、またそのスキーマを XML スキーマ定義言語 (XSD) スキーマとして、永続化したり再度読み込んだりできます。 詳しくは、「DataSet での XML の使用」を参照してください。
DataTableCollection
ADO.NET の DataSet には、DataTable オブジェクトによって表わされる 0 個以上のテーブルのコレクションが含まれます。 DataTableCollection には、DataSet 内のすべての DataTable オブジェクトが含まれます。
DataTable は System.Data 名前空間で定義されており、メモリ常駐データの 1 つのテーブルを表わします。 このテーブルには、共にテーブルのスキーマを定義する DataColumnCollection で表現される列と ConstraintCollection で表現される制約のコレクションが含まれます。 DataTable には、DataRowCollection によって表わされる行のコレクションも含まれ、それにはテーブル内のデータが含まれます。 DataRow には、行に格納された値の変更を識別できるように、行の現在の状態と共に、行の現在のバージョンと元のバージョンの両方が保持されます。
DataView クラス
DataView では、DataTable に格納されているデータのさまざまなビューを作成できます。この機能は、データ連結アプリケーションで頻繁に使用されます。 DataView を使用すると、テーブルのデータをさまざまな並べ替え順序で公開したり、行の状態やフィルター式に基づいてデータをフィルター処理したりできます。 詳しくは、「DataView」をご覧ください。
DataRelationCollection
DataSet の DataRelationCollection オブジェクトには、リレーションシップが含まれます。 DataRelation オブジェクトによって表されるリレーションシップでは、ある DataTable の行と別の DataTable の行が関連付けられます。 リレーションシップは、リレーショナル データベースの主キー列と外部キー列の間に存在する結合パスに似ています。 DataRelation では、1 つの DataSet の 2 つのテーブルで一致する列が識別されます。
リレーションシップを使用すると、DataSet 内の、あるテーブルと別のテーブルを行き来できます。 DataRelation の必須要素は、リレーションシップの名前、関連付けられているテーブルの名前、各テーブル内の関連する列です。 DataColumn オブジェクトの配列をキー列として指定することによって、テーブルごとに複数の列を使用してリレーションシップを構築できます。 DataRelationCollection にリレーションシップを追加するときに、必要に応じて UniqueKeyConstraint と ForeignKeyConstraint を追加し、関連する列の値が変更されたときの整合性制約を適用できます。
詳しくは、「DataRelation の追加」をご覧ください。
XML
XML ストリームまたは XML ドキュメントから DataSet を設定できます。 XML ストリームまたは XML ドキュメントを使用して DataSet に提供できるのは、データまたはスキーマ情報のいずれか、あるいはその両方です。 XML のストリームまたはドキュメントから提供される情報を、DataSet に既に存在するデータまたはスキーマ情報と組み合わせることもできます。 詳しくは、「DataSet での XML の使用」を参照してください。
ExtendedProperties
DataSet、DataTable、DataColumn のすべてに、ExtendedProperties プロパティがあります。 ExtendedProperties は PropertyCollection であり、ここには、結果セットの生成に使われた SELECT ステートメントやデータが生成された時刻など、独自の情報を格納できます。 ExtendedProperties コレクションは、DataSet のスキーマ情報と共に永続化されます。
LINQ to DataSet
LINQ to DataSet では、DataSet に格納された非接続型データに対する統合言語クエリ機能が提供されます。 LINQ to DataSet では標準の LINQ 構文が使用されており、Visual Studio IDE を使用するとコンパイル時の構文チェック、静的な型指定、IntelliSense のサポートが提供されます。
詳細については、「LINQ to DataSet」を参照してください。