你如何加入Linq To SQL?

时间:2009-06-04 09:25:48

标签: c# linq linq-to-sql join

我的数据设置如下: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?

你是怎么做到的?

1 个答案:

答案 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));