如标题所示,有没有办法在SODA查询中检查空集合?如何检查db4o的SODA查询中的空集合
我可以检查集合字段是否设置为空并检查集合元素中的属性值,但不知道如何检查集合是否没有元素。
任何帮助表示赞赏:)
编辑1:我知道如何使查询发生外db4o的过滤,即通过切换为使用本机查询或LINQ;或者执行与使用评估时收集的计数相同的等价物。
我实际上是在试图避免那里的原生查询引起的激活,因为它在我们的场景中确实击中了我们。
如标题所示,有没有办法在SODA查询中检查空集合?如何检查db4o的SODA查询中的空集合
我可以检查集合字段是否设置为空并检查集合元素中的属性值,但不知道如何检查集合是否没有元素。
任何帮助表示赞赏:)
编辑1:我知道如何使查询发生外db4o的过滤,即通过切换为使用本机查询或LINQ;或者执行与使用评估时收集的计数相同的等价物。
我实际上是在试图避免那里的原生查询引起的激活,因为它在我们的场景中确实击中了我们。
我没有运气寻找解决方案或尝试任何选项与计数或大小作为检查。尝试不同的选择有一些集中的集成测试进行备份后,我发现一个做的伎俩:
鉴于List类型的字段_list:
...
query.Descend("_list").Constrain(typeof(Item)).Not();
...
它有效只会返回记录没有列表中的项目,因为这些是唯一通过没有Item类型项目的检查。它适用于这两种情况,当_list为空或是一个空列表时。
注:我不知道如何使用db40。这完全基于搜索
看看Size
方法IObjectSet
here。
编辑:基于我对“db40 SODA查询”的搜索,我看到了使用IObjectSet
作为query.Execute
的返回值的示例,因此上述内容可能有所帮助。
嗨,谢谢你的回答。不幸的是,这是我们作为查询结果得到的结果,我需要做的是在查询中过滤基于属性的集合。也就是说,值得一试,如果db4o在查询中使用了一些约定,我认为我尝试了Count(基于.net),但是我会尝试使用Size,以防万一:) – eglasius 2011-03-05 20:54:03