我的应用程序使用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);
或者上述甚至可以工作吗?
答案 0 :(得分:0)
这可能是一个很好的方式:
var y = x.NumberOfBathrooms;
predicate = predicate.And(x => new List<int>{y-1, y, y+1}.Contains(x));