ADO.NET 2.0 では、 System.Data.Common 名前空間に新しい基底クラスが導入されました。 基底クラスは抽象であり、直接インスタンス化できないことを意味します。 これには DbConnection、 DbCommand、 DbDataAdapter が含まれており、 System.Data.SqlClient や System.Data.OleDbなどの .NET Framework データ プロバイダーによって共有されます。 基底クラスを追加すると、新しいインターフェイスを作成しなくても、.NET Framework データ プロバイダーに機能を簡単に追加できます。
ADO.NET 2.0 では抽象基本クラスも導入されました。これを使用すると、開発者は特定のデータ プロバイダーに依存しない汎用データ アクセス コードを記述できます。
ファクトリ デザイン パターン
プロバイダーに依存しないコードを記述するためのプログラミング モデルは、単一の API を使用して複数のプロバイダー間のデータベースにアクセスする "ファクトリ" 設計パターンの使用に基づいています。 このパターンは、実際のファクトリと同様に、他のオブジェクトを作成するためだけに特殊なオブジェクトを使用する必要があるため、適切な名前が付けられています。 ファクトリ設計パターンの詳細については、「 ASP.NET 2.0 および ADO.NET 2.0 での汎用データ アクセス コードの記述」を参照してください。
ADO.NET 2.0 以降、DbProviderFactories クラスは、static
インスタンスを作成するためのShared
(または Visual Basic ではDbProviderFactory) メソッドを提供します。 その後、インスタンスは、プロバイダー情報と実行時に指定された接続文字列に基づいて、厳密に型指定された正しいオブジェクトを返します。