我有一个有趣的挑战,我认为有一个简单的答案。
我知道当您在语法上执行以下操作时,NEST 过滤器可以正常工作:
var andFilter = FilterFactory.AndFilter(
FilterFactory.TermFilter("name.first", "shay1"),
FilterFactory.TermFilter("name.first", "shay4")
);
我的基本服务应该允许调用者传入某种可枚举的项目列表以进行过滤。
我基本上希望能够以编程方式实现这样的事情(过滤器被传递到方法中):
var andFilter = new FilterDescriptor();
foreach (var filter in filters)
{
andFilter = filter concatenated to andFilter
}
换句话说,如果我传入一个数组 { {"first.name", "joe"}, {"first.name", "jim"}, {"first.name", "frank"}} 我想产生相当于
var andFilter = FilterFactory.AndFilter(
FilterFactory.TermFilter("name.first", "joe"),
FilterFactory.TermFilter("name.first", "joe"),
FilterFactory.TermFilter("name.first", "frank")
);