0

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

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

任何帮助表示赞赏:)


编辑 1:我确实知道如何在 db4o 过滤之外进行查询,即通过切换到使用本机查询或 LINQ;或在检查集合计数时执行等效操作,即使用评估。

我实际上是在尝试避免由其中的本机查询引起的激活,因为它确实在我们的场景中影响了我们的性能。

4

2 回答 2

2

我没有运气寻找解决方案或尝试使用 Count 或 Size 作为检查的任何选项。在尝试了一些有针对性的集成测试来支持不同的选项后,我找到了一个可以解决问题的方法:

给定一个 List 类型的字段 _list:

...
query.Descend("_list").Constrain(typeof(Item)).Not();
...

它实际上只返回列表中没有项目的记录,因为这些记录是唯一通过没有项目类型项目检查的记录。当 _list 为 null 或为空列表时,它适用于这两种情况。

于 2011-03-06T06:55:36.453 回答
0

注意:我不知道使用 db40。这纯粹是基于搜索

这里Size的方法。IObjectSet

编辑:基于我对“db40 SODA 查询”的搜索,我看到了使用IObjectSet作为返回值的示例query.Execute,因此上述内容可能会有所帮助。

于 2011-03-05T19:46:33.903 回答