私は現在、クエリビルダアプリケーションを開発しています。基本的には、SQLを知らないユーザーもデータベースに関するさまざまなクエリを定義できるようなシンプルなグラフィカルインターフェイスです(結合、選択、更新、挿入、削除)。私は.Net 3.5を使用します。私のアプリケーションは複数のデータベースをサポートする必要があります.MS-SQL Server、MySQL、Oracleで動作するはずですので、に関する個別のヒントやリンクをお読みいただき、DALのプロバイダを設計する方法をお考えください。プロバイダの独立型DAL(.Net)を設計する方法
ユーザーは、データベースサーバー、現在のサーバー上のデータベースを選択し、接続資格情報を提供し、さまざまなテーブルを選択し、一連のコンボボックスを使用してクエリを定義し、最後に有効な場合はクエリを実行します。もちろん、DALでは、各DBプロバイダのメソッドが必要です。私は工場のパターンのラインで何かを考えています。
注:これは簡単な学校プロジェクトです。そのため、結果として得られるクエリのセキュリティやパフォーマンスには関心がありません。
更新:あなたが提供した非常に貴重な情報を得て、私はDbProviderFactoryを使用することにしました。 ORMは興味深いですが、クエリアナライザ/ビルダーが必要なので、私はそれを使う点を見ません。ですから、DbProviderFactoryとそれに関連するクラスの使い方に関する詳細なチュートリアルを教えていただければ幸いです。
これは世界でどのように彼を助けるだろうか?適切なDbProviderFactoryを取得するのは機能的に0.2%の悲惨さですが、最も複雑な部分はDbProviderFactoryの機能_at all_でカバーされていない実際のクエリ構文になります。 –
彼はクエリの構文について何も質問しませんでした。彼はプロバイダに依存しないDALについて尋ねました。 DbProviderFactoryは、DALをベースにして既に実装されているファクトリパターンを提供します。機能性の欠如は、広範囲のRDBMSで動作し、データベースのベンダー固有の機能を使用できなくてはならないという事実によるものです。彼がまっすぐな選択、更新、削除、挿入に固執すれば、何も問題はないはずです。 しかし、ORMはあなたにもっと多くを与えます。 –
ORMを使用する場合:アプリケーションにハードコードされたビジネスオブジェクトがある場合、それは完全に機能します。しかし、アプリケーションが特定のドメインを持たない単純なクエリビルダー/ランナー(MSのクエリアナライザーなど)である場合、ORMは私の知る限り大きな助けにはなりません。 私が間違っている場合は私を修正してください。私はORMのすべての用途について100%の手がかりを持っているわけではありません。 –