var totalParentsWithThisChild =
(from p in parent
from c in parent.Child
where c.someField > someValue
select parent
).Count();
这似乎给我带来了某种效果的孩子,
我喜欢算上一个有孩子的父母在某个境地>某个value,我该怎么做?
您可以使用Any
检查是否有与给定情况相匹配的孩子。您可以将Count
与谓词一起使用,以查找有这样的孩子的父母的数量:
parent.Count(p => p.Child.Any(c => c.someFiled > someValue))
注意:我建议您使用复数形式的名称作为收藏:父母,孩子
略微查询语法:
var totalParentsWithThisChild =
(from p in parent
where p.Child.Any(c => c.someFiled > someValue)
select p).Count()
因为不支持查询语法中的Any
和Count
扩展方法。为了避免丑陋的括号,您可以将此查询分为两个部分:
var parentsWithThisChild =
from p in parent
where p.Child.Any(c => c.someFiled > someValue)
select p;
var totalParentsWithThisChild = parentsWithThisChild.Count();
但是,在这种情况下,纯方法语法要短得多。