2

Oracle クライアントを使用して Oracle データベースにアクセスする .NET アプリケーションがあります。

いつかデータベースを Oracle から他のリレーショナル データベースに移行する場合、アプリケーションのデータ アクセス コードを変更する必要はありません。

ドライバーまたは DLL などの何かを変更したいだけで、残りのコードが適切なデータベースからデータを取得するように接続文字列を変更したいと考えています。

これどうやってするの?

4

3 に答える 3

0

Microsoft のエンティティ フレームワークを調べてください。この ORM は、ほとんどのリレーショナル データベースに接続して通信できる必要があります。

http://msdn.microsoft.com/en-us/data/ef.aspx

それについて私がお勧めする本: http://shop.oreilly.com/product/9780596807252.do http://shop.oreilly.com/product/0636920022220.do

または視聴: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2009/DTL312

于 2013-10-08T07:33:57.610 に答える
0

ADO .NET には一連の抽象クラスとファクトリが含まれているため、ADO.NET ドライバーが存在する限り、接続先のデータベースの種類を考慮する必要はありません。

特定のプロバイダーに縛られないように、ファクトリ メソッドを使用して、使用するさまざまなクラスを新しくする必要があります。

詳細については、このmsdn 記事を参照してください。

もちろん、単に複数の種類のデータベースへの接続を作成してクエリを実行できるだけでは、問題の半分に過ぎません。また、クエリ自体が、使用するデータベースと互換性があることを確認する必要があります。

主要な SQL サーバーによって理解される可能性が高い SQL のサブセットを使用するか、エンティティ フレームワークには、Linq からデータベース固有の SQL を生成する多くのプロバイダーがあります。ただし、これはまだ完全ではありません..サポートしていないプロバイダーによって変換できないクエリを作成することはできます。

于 2013-10-08T07:36:19.640 に答える