古いアプリケーションを WebForms から MVC に移植する作業を行っています。そのプロセスの一部では、既存のデータ層を引き裂き、ロジックをストアド プロシージャからコードに移動しています。最初は基本的な C# SQL 関数 (System.Data.SqlClient) しか扱っていなかったので、SQL ステートメントを文字列として受け取って実行する軽量の疑似 ORM ( PetaPoco ) を使用しました。動的クエリの構築は、SQL でもほぼ同じように機能します。追加のコードを追加および削除する多くの条件 (平均クエリには約 30 個のフィルターがあります)。
そこで、少し調べてみると、いくつかの選択肢が見つかりました。
- 必要に応じてクエリの一部を追加する一連の文字列と条件。特にクエリが複雑になると、本当に厄介であり、より良い解決策が存在する場合、私が追求したいものではありません.
- L2E を使用した一連の条件。よりエレガントに見えますが、私がテストした L2E は全体的に肥大化しすぎており、ひどい経験でした。L2Sでも同じことができますか?もしそうなら、L2S は今後 5 ~ 10 年間存続しますか?
- PredicateBuilderを使用します。これについてはまだ調べていますが、L2S に関する同じ質問です。
- 編集: 既存のストアド プロシージャ モデルに固執することもできますが、とにかくそれらを書き直す必要があるため、他のオプションを見て損をすることはありません。
そこに他のオプションはありますか?言及された方法のいずれかについて経験を積んだ人は誰でも参加できますか?