1

我的应用程序使用 Predicate Builder 促进了多标准搜索。假设这些标准之一允许用户指定他们想要在房子里有多少个浴室。

我可以使用 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 回答