8
利用可能な値でフィルタリングするRavenDBクエリを書きたいが、その値が利用できない場合は、すべてのオブジェクトを返すようにしたい。RavenDB - オプションwhere句
var matches = people.Where(x => x.LastName == userEntry || userEntry == string.Empty).ToList();
をしかし、以下は動作しません:たとえば、オブジェクトへのLINQで、私はこのような何かを行うことができますインデックス付きの値ではない
var matches = RavenSession.Query<Person>().Where(x => x.LastName == userEntry || userEntry == string.Empty).ToList();
userEntry
ので、これは例外をスローします。
どうすればこの問題を解決できますか?
最悪のシナリオは、if文だけ 'userEntry == string.Empty'、クエリを確認するために行いますそれに応じて!ボーナス、理解しやすい! – banging
私はあなたが何を意味するかを見ていると思いますが、わかりやすくするために質問を単純化しました。私の実際のシナリオはより複雑で、フィルタリングのためにすべてオプションのフィールドが10個あり、ユーザーが入力したものがあればそれらをクエリに含めたいと思っています。しかし、ユーザーがそれらを空白のままにしておくと、それらは除外されるべきです。したがって、可能なすべてのフィルタの組み合わせに対して異なるクエリを使用してif文を記述することは実用的ではありません。 –