我的数据设置如下:State
1-> n County
1-> n City
。
在我的State对象中,我想返回包含至少一个人口大于p
的城市的所有县。如果我在sql中写这个:它将是:
select distinct co.*
from County co join City ci on ci.CountyID = co.ID
where ci.Population > @p
and co.StateCode = @StateCode
也许sql可以更好地进行优化(我当然会感谢指针),但这不是重点......
无论如何,我想在国家班的Linq做这件事。我的代码(显然没有编译)现在看起来像这样:
var q =
from co in Counties
where co.Cities // uh-oh, now what?
你是怎么做到的?
答案 0 :(得分:6)
假设你有关联属性......
var q = from co in Counties
where co.Cities.Any(city =>city.Population > p)
select co;
或者简单地说:
var q = Counties.Where(co => co.Cities.Any(city => city.Population > p));