例如最终用户从五个可能的过滤器中选择两个,最后三个过滤器保留为“全部”。
我不需要为 5 个过滤器的每种可能组合创建查询(总共 25 个不同的查询),处理这个问题最有效的语法是什么?
我应该使用 .and 将查询链接在一起,然后我可以为不需要的查询指定“all”吗?
A 查询构建器可用于根据所选过滤器构建查询。也就是说,仅使用内部
if
条件检查过滤器来添加查询条件。
我按如下方式解决了这个问题。使用三元运算符 ?: 并在第二个条件中使用 .notNull() 查询值之一 这给出了“all”的结果,有效地忽略了查询的这一部分。
这是一个 hack,但它确实有效。这显然是一个昂贵的解决方案,因为理想的情况是完全跳过不需要的过滤器。
开发人员注意:'if' 不能在 dart 的查询结构中使用。感谢您抽出时间回复,希望我的附加信息有帮助。
从 ObjectBox 读取所有记录,然后在 Dart 中过滤结果(使用合理大小的集合)似乎更有意义。