正如标题所说,有没有办法在SODA查询中检查空集合?
我可以检查集合字段是否设置为null并检查集合元素中的属性值,但不知道如何检查集合是否没有元素。
感谢任何帮助:)
编辑1:我知道如何在db4o过滤之外进行查询,即切换到使用Native Queries或LINQ;或者在检查使用评估的集合计数时发生的等效事项。
我实际上是在尝试避免由那里的Native Query引起的激活,因为它在我们的场景中确实会影响我们的性能。
答案 0 :(得分:2)
我没有运气搜索解决方案或尝试使用Count或Size作为支票的任何选项。在通过一些集中的集成测试尝试不同的选项来备份之后,我找到了一个可以解决问题的方法:
给定List类型的字段_list:
...
query.Descend("_list").Constrain(typeof(Item)).Not();
...
它只有效地返回列表中没有项目的记录,因为那些是唯一通过检查没有Item类型项目的记录。当_list为null或为空列表时,它适用于这两种情况。
答案 1 :(得分:0)
注意:我不知道如何使用db40。这纯粹基于搜索
查看Size
here上的IObjectSet
方法。
编辑:根据我对“db40 SODA查询”的搜索,我看到使用IObjectSet
作为query.Execute
的返回值的示例,因此上述内容可能会有所帮助。