如何在db4o的SODA查询中检查空集合

时间:2011-03-05 00:53:03

标签: c# .net db4o soda

正如标题所说,有没有办法在SODA查询中检查空集合?

我可以检查集合字段是否设置为null并检查集合元素中的属性值,但不知道如何检查集合是否没有元素。

感谢任何帮助:)


编辑1:我知道如何在db4o过滤之外进行查询,即切换到使用Native Queries或LINQ;或者在检查使用评估的集合计数时发生的等效事项。

我实际上是在尝试避免由那里的Native Query引起的激活,因为它在我们的场景中确实会影响我们的性能。

2 个答案:

答案 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的返回值的示例,因此上述内容可能会有所帮助。