1

私のアプリケーションは、Predicate Builder を使用して多基準検索を容易にします。これらの基準の 1 つにより、ユーザーが家に必要なバスルームの数を指定できるとします。

Predicate Builder を使用して、データベースから、ユーザーが指定した数の寝室を持つ家を取得できます。

predicate = predicate.And(x => x.NumberOfBathrooms == viewModel.NumberOfBathrooms);

ユーザーが入力したバスルームの数が +/- 1 である家を返したいとします。したがって、2 を入力すると、バスルームが 1、2、3 の住宅が適用されます。

達成できる唯一の方法は次のとおりですか?

predicate = predicate.And(x => x.NumberOfBathrooms == viewModel.NumberOfBathrooms
&& x.NumberOfBathrooms == viewModel.NumberOfBathrooms - 1
&& x.NumberOfBathrooms == viewModel.NumberOfBathrooms + 1);

または、上記でも機能しますか?

4

1 に答える 1

0

これは良い方法かもしれません:

var y = x.NumberOfBathrooms;
predicate = predicate.And(x => new List<int>{y-1, y, y+1}.Contains(x));
于 2013-04-18T20:21:46.680 に答える