2011-03-05 36 views
0

如标题所示,有没有办法在SODA查询中检查空集合?如何检查db4o的SODA查询中的空集合

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

任何帮助表示赞赏:)


编辑1:我知道如何使查询发生外db4o的过滤,即通过切换为使用本机查询或LINQ;或者执行与使用评估时收集的计数相同的等价物。

我实际上是在试图避免那里的原生查询引起的激活,因为它在我们的场景中确实击中了我们。

回答

2

我没有运气寻找解决方案或尝试任何选项与计数或大小作为检查。尝试不同的选择有一些集中的集成测试进行备份后,我发现一个做的伎俩:

鉴于List类型的字段_list:

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

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

0

注:我不知道如何使用db40。这完全基于搜索

看看Size方法IObjectSethere

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

+0

嗨,谢谢你的回答。不幸的是,这是我们作为查询结果得到的结果,我需要做的是在查询中过滤基于属性的集合。也就是说,值得一试,如果db4o在查询中使用了一些约定,我认为我尝试了Count(基于.net),但是我会尝试使用Size,以防万一:) – eglasius 2011-03-05 20:54:03