私が現在取り組んでいるプロジェクトには、一部のSql 2005データベースへのデータベースアクセスレイヤーとして機能するC#Comオブジェクトのリファクタリングが含まれます。
既存のコードの作成者は、文字列と多くのifステートメントを使用してすべてのSQLクエリを手動で作成し、かなり複雑なSQLステートメントを作成しました(〜10結合、> 10サブ選択、〜15-25 where条件とGroupBy)。基本テーブルは常に同じものですが、結合、条件、およびグループ化の構造は、クラス/メソッドに渡されるパラメーターのセットによって異なります。
このようにSQLクエリを作成することは機能しますが、それは明らかに非常に洗練されたソリューションではありません(そして、読み/理解して維持するのもかなり難しいです)...私は単純な「クエリビルダー」を自分で書くことができますが、私はかなり確信しています私はこの種の問題を抱えている最初の人ではないので、私の質問は次のとおりです。
- データベースクエリをどのように構築しますか?
- C#は動的にクエリを作成する簡単な方法を提供しますか?