2011-10-15 76 views
9

dapperを使用して条件を追加したり削除したりすることは可能ですか?私はユーザー主導のフィルタリングを実装するためにこれが必要です。あまりにも多くの組み合わせがあるため、各フィルタのクエリを実行することは現実的ではありません。dapperの動的where句

答えて

3

最も基本的なレベルでは、TSQLをStringBuilderで動的に構築するだけで、余分にand c.Name = @nameなどを追加できます。余分なパラメータについては心配しないでください。それらをすべて送信する - ライブラリはコマンドを検査し、明らかに使用されていないパラメータは追加しない。この特定のシナリオでは2番目の新しいAPIがありますが、確認せずに詳細を覚えていません(私はコンピュータではありません)。私は後で詳細を追加しようとすることができます(サムがそうでないと仮定します)。

+0

現在、sqlを文字列として構築しています。問題は私がWHEREの中にいくつかのINを使っていることです。いくつかは空のコレクションなので、間違ってコレクションに空のコレクションを渡しています。理想的には、フィルターに入れるアイテムがコレクション内にある場合にのみ、IN句を追加します。 – NabilS

+0

@ NabilSしかし、あなたが*その部分を追加していなければ、正しく動作するはずですが、私は調査します –

+1

@NabilS参照:http://samsaffron.com/archive/2011/09/05/掘り下げ+自分自身+アウト+ +混乱+ Linq-2-SQL +作成#commentsTitle –