私が開発している ASP.NET Web アプリケーションは、Access と MS SQL Server 2008 Express という 2 種類のデータベースをサポートする必要があります。
各データベース タイプの接続文字列は既に web.config に格納されており、使用するものを指定する別の web.config 値があります。したがって、問題なく適切な接続文字列を取得できます。
大きな問題は、データベース オブジェクトにあります。既に実装した Access の場合、コード内でオブジェクト OleDbConnection、OleDbCommand、および OleDbDataReader を使用してデータベース呼び出しを行います。
SQL Server の場合、これらのオブジェクトを使用できないようですが、基本的に同じことを行うには、SqlConnection、SqlCommand、および SqlDataReader オブジェクトを使用する必要があります。
現在のコードをできるだけ再利用したいので、データベースの種類ごとに 2 つの個別のブロックを作成する必要はありません。(OleDbDataReader をパラメーターとして受け取るメソッドがたくさんあります。たとえば、これらのメソッドをそれぞれ 2 つ作成する必要はありません。)
接続オブジェクトは両方とも DbConnection を継承していることに気付きました。データ リーダー (DbDataReader) とコマンド (DbCommand) についても同様です。
Access の既存のコードを使用して、すべての Ole オブジェクトを Db オブジェクトに置き換え、現在のデータベースの種類に応じて、それらのオブジェクトを適切な型としてキャストすることは可能でしょうか?
1 つの ASP.NET アプリケーションで 2 つのデータベース タイプをサポートするためのベスト プラクティスはありますか?
それが役立つ場合は、コードの一部を追加できます。ありがとう。